When the string is ended by a delimiter, return an extra empty string just
authorSebastian Wilhelmi <wilhelmi@ira.uka.de>
Thu, 26 Oct 2000 13:00:18 +0000 (13:00 +0000)
committerSebastian Wilhelmi <wilhelmi@src.gnome.org>
Thu, 26 Oct 2000 13:00:18 +0000 (13:00 +0000)
2000-10-26  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

* gstrfuncs.c (g_strsplit): When the string is ended by a
delimiter, return an extra empty string just like for a delimiter
at the start of the string. This makes the function behave more
consitent and also fixes Bug #15026.

ChangeLog
ChangeLog.pre-2-0
ChangeLog.pre-2-10
ChangeLog.pre-2-12
ChangeLog.pre-2-2
ChangeLog.pre-2-4
ChangeLog.pre-2-6
ChangeLog.pre-2-8
glib/gstrfuncs.c
gstrfuncs.c

index b723ec8..494a930 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2000-10-26  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
+
+       * gstrfuncs.c (g_strsplit): When the string is ended by a
+       delimiter, return an extra empty string just like for a delimiter
+       at the start of the string. This makes the function behave more
+       consitent and also fixes Bug #15026.
+
 Tue Oct 24 22:09:14 2000  Tim Janik  <timj@gtk.org>
 
        * glib-object.h: added newly added gobject/ headers.
index b723ec8..494a930 100644 (file)
@@ -1,3 +1,10 @@
+2000-10-26  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
+
+       * gstrfuncs.c (g_strsplit): When the string is ended by a
+       delimiter, return an extra empty string just like for a delimiter
+       at the start of the string. This makes the function behave more
+       consitent and also fixes Bug #15026.
+
 Tue Oct 24 22:09:14 2000  Tim Janik  <timj@gtk.org>
 
        * glib-object.h: added newly added gobject/ headers.
index b723ec8..494a930 100644 (file)
@@ -1,3 +1,10 @@
+2000-10-26  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
+
+       * gstrfuncs.c (g_strsplit): When the string is ended by a
+       delimiter, return an extra empty string just like for a delimiter
+       at the start of the string. This makes the function behave more
+       consitent and also fixes Bug #15026.
+
 Tue Oct 24 22:09:14 2000  Tim Janik  <timj@gtk.org>
 
        * glib-object.h: added newly added gobject/ headers.
index b723ec8..494a930 100644 (file)
@@ -1,3 +1,10 @@
+2000-10-26  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
+
+       * gstrfuncs.c (g_strsplit): When the string is ended by a
+       delimiter, return an extra empty string just like for a delimiter
+       at the start of the string. This makes the function behave more
+       consitent and also fixes Bug #15026.
+
 Tue Oct 24 22:09:14 2000  Tim Janik  <timj@gtk.org>
 
        * glib-object.h: added newly added gobject/ headers.
index b723ec8..494a930 100644 (file)
@@ -1,3 +1,10 @@
+2000-10-26  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
+
+       * gstrfuncs.c (g_strsplit): When the string is ended by a
+       delimiter, return an extra empty string just like for a delimiter
+       at the start of the string. This makes the function behave more
+       consitent and also fixes Bug #15026.
+
 Tue Oct 24 22:09:14 2000  Tim Janik  <timj@gtk.org>
 
        * glib-object.h: added newly added gobject/ headers.
index b723ec8..494a930 100644 (file)
@@ -1,3 +1,10 @@
+2000-10-26  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
+
+       * gstrfuncs.c (g_strsplit): When the string is ended by a
+       delimiter, return an extra empty string just like for a delimiter
+       at the start of the string. This makes the function behave more
+       consitent and also fixes Bug #15026.
+
 Tue Oct 24 22:09:14 2000  Tim Janik  <timj@gtk.org>
 
        * glib-object.h: added newly added gobject/ headers.
index b723ec8..494a930 100644 (file)
@@ -1,3 +1,10 @@
+2000-10-26  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
+
+       * gstrfuncs.c (g_strsplit): When the string is ended by a
+       delimiter, return an extra empty string just like for a delimiter
+       at the start of the string. This makes the function behave more
+       consitent and also fixes Bug #15026.
+
 Tue Oct 24 22:09:14 2000  Tim Janik  <timj@gtk.org>
 
        * glib-object.h: added newly added gobject/ headers.
index b723ec8..494a930 100644 (file)
@@ -1,3 +1,10 @@
+2000-10-26  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
+
+       * gstrfuncs.c (g_strsplit): When the string is ended by a
+       delimiter, return an extra empty string just like for a delimiter
+       at the start of the string. This makes the function behave more
+       consitent and also fixes Bug #15026.
+
 Tue Oct 24 22:09:14 2000  Tim Janik  <timj@gtk.org>
 
        * glib-object.h: added newly added gobject/ headers.
index 032343a..2d1ae71 100644 (file)
@@ -1487,7 +1487,7 @@ g_strsplit (const gchar *string,
 {
   GSList *string_list = NULL, *slist;
   gchar **str_array, *s;
-  guint i, n = 1;
+  guint n = 1;
 
   g_return_val_if_fail (string != NULL, NULL);
   g_return_val_if_fail (delimiter != NULL, NULL);
@@ -1516,19 +1516,13 @@ g_strsplit (const gchar *string,
        }
       while (--max_tokens && s);
     }
-  if (*string)
-    {
-      n++;
-      string_list = g_slist_prepend (string_list, g_strdup (string));
-    }
-
-  str_array = g_new (gchar*, n);
+  string_list = g_slist_prepend (string_list, g_strdup (string));
 
-  i = n - 1;
+  str_array = g_new (gchar*, n + 1);
 
-  str_array[i--] = NULL;
+  str_array[n--] = NULL;
   for (slist = string_list; slist; slist = slist->next)
-    str_array[i--] = slist->data;
+    str_array[n--] = slist->data;
 
   g_slist_free (string_list);
 
index 032343a..2d1ae71 100644 (file)
@@ -1487,7 +1487,7 @@ g_strsplit (const gchar *string,
 {
   GSList *string_list = NULL, *slist;
   gchar **str_array, *s;
-  guint i, n = 1;
+  guint n = 1;
 
   g_return_val_if_fail (string != NULL, NULL);
   g_return_val_if_fail (delimiter != NULL, NULL);
@@ -1516,19 +1516,13 @@ g_strsplit (const gchar *string,
        }
       while (--max_tokens && s);
     }
-  if (*string)
-    {
-      n++;
-      string_list = g_slist_prepend (string_list, g_strdup (string));
-    }
-
-  str_array = g_new (gchar*, n);
+  string_list = g_slist_prepend (string_list, g_strdup (string));
 
-  i = n - 1;
+  str_array = g_new (gchar*, n + 1);
 
-  str_array[i--] = NULL;
+  str_array[n--] = NULL;
   for (slist = string_list; slist; slist = slist->next)
-    str_array[i--] = slist->data;
+    str_array[n--] = slist->data;
 
   g_slist_free (string_list);