summaryrefslogtreecommitdiff
path: root/gstrfuncs.c
diff options
context:
space:
mode:
authorSebastian Wilhelmi <wilhelmi@ira.uka.de>2000-10-26 13:00:18 +0000
committerSebastian Wilhelmi <wilhelmi@src.gnome.org>2000-10-26 13:00:18 +0000
commit6f83e76ea8e27d1ab12f43a756d1ec46ac9726ff (patch)
tree4e50c1d4ae21beeb150c73c4ec7c3bc59d10ced7 /gstrfuncs.c
parent752f18cc244570977cdd8af8bdd26f71c76f3038 (diff)
downloadglib-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.c16
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);