xbt_dynar_t xbt_str_split(const char *s, const char *sep)
{
- xbt_dynar_t res = xbt_dynar_new(sizeof(char *), xbt_free_ref);
+ xbt_dynar_t res = xbt_dynar_new(sizeof(char *), &xbt_free_ref);
const char *p, *q;
int done;
const char *sep_dflt = " \t\n\r\x0B";
*/
xbt_dynar_t xbt_str_split_str(const char *s, const char *sep)
{
- xbt_dynar_t res = xbt_dynar_new(sizeof(char *), xbt_free_ref);
+ xbt_dynar_t res = xbt_dynar_new(sizeof(char *), &xbt_free_ref);
int done;
const char *p, *q;
xbt_dynar_t xbt_str_split_quoted(const char *s)
{
- xbt_dynar_t res = xbt_dynar_new(sizeof(char *), xbt_free_ref);
+ xbt_dynar_t res = xbt_dynar_new(sizeof(char *), &xbt_free_ref);
char *str_to_free; /* we have to copy the string before, to handle backslashes */
char *beg, *end; /* pointers around the parsed chunk */
int in_simple_quote = 0, in_double_quote = 0;
}
}
free(str_to_free);
+ xbt_dynar_shrink(res,0);
return res;
}
return res;
}
-#if !defined(HAVE_GETLINE) || defined(DOXYGEN)
-/* prototype here, just in case */
-long getline(char **buf, size_t * n, FILE * stream);
-
+#if defined(SIMGRID_NEED_GETLINE) || defined(DOXYGEN)
/** @brief Get a single line from the stream (reimplementation of the GNU getline)
*
* This is a redefinition of the GNU getline function, used on platforms where it does not exists.
xbt_dynar_t db = xbt_str_split(b, "\n");
xbt_matrix_t C = diff_build_LCS(da, db);
- xbt_dynar_t diff = xbt_dynar_new(sizeof(char *), xbt_free_ref);
+ xbt_dynar_t diff = xbt_dynar_new(sizeof(char *), &xbt_free_ref);
char *res = NULL;
diff_build_diff(diff, C, da, db, xbt_dynar_length(da) - 1,