Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Fix copyright headers
[simgrid.git] / src / xbt / xbt_str.c
index 9646fbc..52911c5 100644 (file)
@@ -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,