X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/cf83e2bdb40c0520e0e641e22d13c92a9d0135fd..aa29c3a2434a29e6901f1e98aa0c171ee15d73cc:/src/xbt/xbt_str.c diff --git a/src/xbt/xbt_str.c b/src/xbt/xbt_str.c index 9646fbcfa4..52911c5334 100644 --- a/src/xbt/xbt_str.c +++ b/src/xbt/xbt_str.c @@ -1,13 +1,10 @@ -/* $Id$ */ - /* xbt_str.c - various helping functions to deal with strings */ -/* Copyright (C) 2005-2008 The SimGrid Team. */ -/* All rights reserved. */ +/* Copyright (c) 2007, 2008, 2009, 2010. The SimGrid Team. + * All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it - * under the terms of the license (GNU LGPL) which comes with this package. - */ + * under the terms of the license (GNU LGPL) which comes with this package. */ #include "portable.h" #include "xbt/misc.h" @@ -229,7 +226,7 @@ char *xbt_str_varsubst(char *str, xbt_dict_t patterns) 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"; @@ -278,7 +275,7 @@ xbt_dynar_t xbt_str_split(const char *s, const char *sep) */ 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; @@ -330,7 +327,7 @@ xbt_dynar_t xbt_str_split_str(const char *s, const char *sep) 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; @@ -417,6 +414,7 @@ xbt_dynar_t xbt_str_split_quoted(const char *s) } } free(str_to_free); + xbt_dynar_shrink(res,0); return res; } @@ -669,7 +667,7 @@ char *xbt_str_diff(char *a, char *b) 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,