diff options
author | Sebastian Wilhelmi <wilhelmi@ira.uka.de> | 2000-10-26 13:00:18 +0000 |
---|---|---|
committer | Sebastian Wilhelmi <wilhelmi@src.gnome.org> | 2000-10-26 13:00:18 +0000 |
commit | 6f83e76ea8e27d1ab12f43a756d1ec46ac9726ff (patch) | |
tree | 4e50c1d4ae21beeb150c73c4ec7c3bc59d10ced7 /gstrfuncs.c | |
parent | 752f18cc244570977cdd8af8bdd26f71c76f3038 (diff) | |
download | glib-6f83e76ea8e27d1ab12f43a756d1ec46ac9726ff.tar.gz |
When the string is ended by a delimiter, return an extra empty string just
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.
Diffstat (limited to 'gstrfuncs.c')
-rw-r--r-- | gstrfuncs.c | 16 |
1 files changed, 5 insertions, 11 deletions
diff --git a/gstrfuncs.c b/gstrfuncs.c index 032343ad2..2d1ae71f4 100644 --- a/gstrfuncs.c +++ b/gstrfuncs.c @@ -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); |