From 113d5e1d74f1c29d36089bd2a03aa73ed35c3056 Mon Sep 17 00:00:00 2001 From: Darin Adler Date: Tue, 13 Nov 2001 00:02:30 +0000 Subject: [PATCH] Fix max_tokens == 1 case to match documentation. Add tests. * glib/gstrfuncs.c: (g_strsplit): Fix max_tokens == 1 case to match documentation. * tests/strfunc-test.c: (main): Add tests. * tests/.cvsignore: Recently-added test. --- ChangeLog | 8 ++++++++ ChangeLog.pre-2-0 | 8 ++++++++ ChangeLog.pre-2-10 | 8 ++++++++ ChangeLog.pre-2-12 | 8 ++++++++ ChangeLog.pre-2-2 | 8 ++++++++ ChangeLog.pre-2-4 | 8 ++++++++ ChangeLog.pre-2-6 | 8 ++++++++ ChangeLog.pre-2-8 | 8 ++++++++ glib/gstrfuncs.c | 5 +---- tests/.cvsignore | 1 + tests/strfunc-test.c | 13 +++++++++++++ 11 files changed, 79 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index d239df3a9..f2bdada70 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2001-11-12 Darin Adler + + * glib/gstrfuncs.c: (g_strsplit): Fix max_tokens == 1 case to + match documentation. + * tests/strfunc-test.c: (main): Add tests. + + * tests/.cvsignore: Recently-added test. + Mon Nov 12 03:01:28 2001 Tim Janik * glib/gscanner.c (g_scanner_eof): G_TOKEN_ERROR is also an end diff --git a/ChangeLog.pre-2-0 b/ChangeLog.pre-2-0 index d239df3a9..f2bdada70 100644 --- a/ChangeLog.pre-2-0 +++ b/ChangeLog.pre-2-0 @@ -1,3 +1,11 @@ +2001-11-12 Darin Adler + + * glib/gstrfuncs.c: (g_strsplit): Fix max_tokens == 1 case to + match documentation. + * tests/strfunc-test.c: (main): Add tests. + + * tests/.cvsignore: Recently-added test. + Mon Nov 12 03:01:28 2001 Tim Janik * glib/gscanner.c (g_scanner_eof): G_TOKEN_ERROR is also an end diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index d239df3a9..f2bdada70 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,11 @@ +2001-11-12 Darin Adler + + * glib/gstrfuncs.c: (g_strsplit): Fix max_tokens == 1 case to + match documentation. + * tests/strfunc-test.c: (main): Add tests. + + * tests/.cvsignore: Recently-added test. + Mon Nov 12 03:01:28 2001 Tim Janik * glib/gscanner.c (g_scanner_eof): G_TOKEN_ERROR is also an end diff --git a/ChangeLog.pre-2-12 b/ChangeLog.pre-2-12 index d239df3a9..f2bdada70 100644 --- a/ChangeLog.pre-2-12 +++ b/ChangeLog.pre-2-12 @@ -1,3 +1,11 @@ +2001-11-12 Darin Adler + + * glib/gstrfuncs.c: (g_strsplit): Fix max_tokens == 1 case to + match documentation. + * tests/strfunc-test.c: (main): Add tests. + + * tests/.cvsignore: Recently-added test. + Mon Nov 12 03:01:28 2001 Tim Janik * glib/gscanner.c (g_scanner_eof): G_TOKEN_ERROR is also an end diff --git a/ChangeLog.pre-2-2 b/ChangeLog.pre-2-2 index d239df3a9..f2bdada70 100644 --- a/ChangeLog.pre-2-2 +++ b/ChangeLog.pre-2-2 @@ -1,3 +1,11 @@ +2001-11-12 Darin Adler + + * glib/gstrfuncs.c: (g_strsplit): Fix max_tokens == 1 case to + match documentation. + * tests/strfunc-test.c: (main): Add tests. + + * tests/.cvsignore: Recently-added test. + Mon Nov 12 03:01:28 2001 Tim Janik * glib/gscanner.c (g_scanner_eof): G_TOKEN_ERROR is also an end diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index d239df3a9..f2bdada70 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,3 +1,11 @@ +2001-11-12 Darin Adler + + * glib/gstrfuncs.c: (g_strsplit): Fix max_tokens == 1 case to + match documentation. + * tests/strfunc-test.c: (main): Add tests. + + * tests/.cvsignore: Recently-added test. + Mon Nov 12 03:01:28 2001 Tim Janik * glib/gscanner.c (g_scanner_eof): G_TOKEN_ERROR is also an end diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index d239df3a9..f2bdada70 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,11 @@ +2001-11-12 Darin Adler + + * glib/gstrfuncs.c: (g_strsplit): Fix max_tokens == 1 case to + match documentation. + * tests/strfunc-test.c: (main): Add tests. + + * tests/.cvsignore: Recently-added test. + Mon Nov 12 03:01:28 2001 Tim Janik * glib/gscanner.c (g_scanner_eof): G_TOKEN_ERROR is also an end diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index d239df3a9..f2bdada70 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,11 @@ +2001-11-12 Darin Adler + + * glib/gstrfuncs.c: (g_strsplit): Fix max_tokens == 1 case to + match documentation. + * tests/strfunc-test.c: (main): Add tests. + + * tests/.cvsignore: Recently-added test. + Mon Nov 12 03:01:28 2001 Tim Janik * glib/gscanner.c (g_scanner_eof): G_TOKEN_ERROR is also an end diff --git a/glib/gstrfuncs.c b/glib/gstrfuncs.c index e53f59ded..704d14a16 100644 --- a/glib/gstrfuncs.c +++ b/glib/gstrfuncs.c @@ -1888,8 +1888,6 @@ g_strsplit (const gchar *string, if (max_tokens < 1) max_tokens = G_MAXINT; - else - --max_tokens; remainder = string; s = strstr (remainder, delimiter); @@ -1897,7 +1895,7 @@ g_strsplit (const gchar *string, { gsize delimiter_len = strlen (delimiter); - do + while (--max_tokens && s) { gsize len; gchar *new_string; @@ -1911,7 +1909,6 @@ g_strsplit (const gchar *string, remainder = s + delimiter_len; s = strstr (remainder, delimiter); } - while (--max_tokens && s); } if (*string) { diff --git a/tests/.cvsignore b/tests/.cvsignore index 37cd77cc8..5c95c7940 100644 --- a/tests/.cvsignore +++ b/tests/.cvsignore @@ -35,6 +35,7 @@ stamp-gc-h stamp-h strfunc-test string-test +strtod-test thread-test threadpool-test timeloop-closure diff --git a/tests/strfunc-test.c b/tests/strfunc-test.c index 5e361b9f3..0c7b5c215 100644 --- a/tests/strfunc-test.c +++ b/tests/strfunc-test.c @@ -284,6 +284,19 @@ main (int argc, TEST (NULL, strv_check (g_strsplit (",,x,,y,,z,,", ",", 0), "", "", "x", "", "y", "", "z", "", "", NULL)); TEST (NULL, strv_check (g_strsplit (",,x,,y,,z,,", ",,", 0), "", "x", "y", "z", "", NULL)); + TEST (NULL, strv_check (g_strsplit ("", ",", 1), NULL)); + TEST (NULL, strv_check (g_strsplit ("x", ",", 1), "x", NULL)); + TEST (NULL, strv_check (g_strsplit ("x,y", ",", 1), "x,y", NULL)); + TEST (NULL, strv_check (g_strsplit ("x,y,", ",", 1), "x,y,", NULL)); + TEST (NULL, strv_check (g_strsplit (",x,y", ",", 1), ",x,y", NULL)); + TEST (NULL, strv_check (g_strsplit (",x,y,", ",", 1), ",x,y,", NULL)); + TEST (NULL, strv_check (g_strsplit ("x,y,z", ",", 1), "x,y,z", NULL)); + TEST (NULL, strv_check (g_strsplit ("x,y,z,", ",", 1), "x,y,z,", NULL)); + TEST (NULL, strv_check (g_strsplit (",x,y,z", ",", 1), ",x,y,z", NULL)); + TEST (NULL, strv_check (g_strsplit (",x,y,z,", ",", 1), ",x,y,z,", NULL)); + TEST (NULL, strv_check (g_strsplit (",,x,,y,,z,,", ",", 1), ",,x,,y,,z,,", NULL)); + TEST (NULL, strv_check (g_strsplit (",,x,,y,,z,,", ",,", 1), ",,x,,y,,z,,", NULL)); + TEST (NULL, strv_check (g_strsplit ("", ",", 2), NULL)); TEST (NULL, strv_check (g_strsplit ("x", ",", 2), "x", NULL)); TEST (NULL, strv_check (g_strsplit ("x,y", ",", 2), "x", "y", NULL));