From: Darin Adler Date: Tue, 13 Nov 2001 00:02:30 +0000 (+0000) Subject: Fix max_tokens == 1 case to match documentation. Add tests. X-Git-Url: http://git.openbox.org/?a=commitdiff_plain;h=113d5e1d74f1c29d36089bd2a03aa73ed35c3056;p=dana%2Fcg-glib.git 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. --- diff --git a/ChangeLog b/ChangeLog index d239df3a..f2bdada7 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 d239df3a..f2bdada7 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 d239df3a..f2bdada7 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 d239df3a..f2bdada7 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 d239df3a..f2bdada7 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 d239df3a..f2bdada7 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 d239df3a..f2bdada7 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 d239df3a..f2bdada7 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 e53f59de..704d14a1 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 37cd77cc..5c95c794 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 5e361b9f..0c7b5c21 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));