Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Fix a vicious bug in dictionaries inducing that some elements were not freed on xbt_d...
[simgrid.git] / src / xbt / xbt_str.c
index 73279a4..fc0b7ff 100644 (file)
@@ -434,8 +434,7 @@ xbt_dynar_t xbt_str_split_quoted(const char *s)
                    xbt_dynar_free(&d);
 
 XBT_TEST_SUITE("xbt_str", "String Handling");
-XBT_TEST_UNIT("xbt_str_split_quoted", test_split_quoted,
-              "test the function xbt_str_split_quoted")
+XBT_TEST_UNIT("xbt_str_split_quoted", test_split_quoted,"test the function xbt_str_split_quoted")
 {
   xbt_dynar_t d;
   char *s;
@@ -467,8 +466,7 @@ XBT_TEST_UNIT("xbt_str_split_quoted", test_split_quoted,
                    free(s); \
                    xbt_dynar_free(&d);
 
-XBT_TEST_UNIT("xbt_str_split_str", test_split_str,
-              "test the function xbt_str_split_str")
+XBT_TEST_UNIT("xbt_str_split_str", test_split_str,"test the function xbt_str_split_str")
 {
   xbt_dynar_t d;
   char *s;
@@ -699,3 +697,24 @@ char *xbt_str_diff(char *a, char *b)
 
   return res;
 }
+
+
+/** @brief creates a new string containing what can be read on a fd
+ *
+ */
+char* xbt_str_from_file(FILE *file) {
+  xbt_strbuff_t buff = xbt_strbuff_new();
+  char *res;
+  char bread[1024];
+  memset(bread,0,1024);
+
+  while (!feof(file)) {
+    int got = fread(bread, 1, 1023, file);
+    bread[got] = '\0';
+    xbt_strbuff_append(buff,bread);
+  }
+
+  res = buff->data;
+  xbt_strbuff_free_container(buff);
+  return res;
+}