From 6ec472439976e04d86c510c56acedaec836257db Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Thu, 9 Sep 2004 04:12:19 +0000 Subject: [PATCH] Add a function to calculate the length of a NULL-terminated string array. MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Thu Sep 9 00:10:40 2004 Matthias Clasen * glib/gstrfuncs.h: * glib/gstrfuncs.c (g_strv_length): Add a function to calculate the length of a NULL-terminated string array. (#150455, Tim-Philipp Müller) * tests/strfunc-test.c (main): Add a test for g_strv_length(). --- ChangeLog | 9 +++++++++ ChangeLog.pre-2-10 | 9 +++++++++ ChangeLog.pre-2-12 | 9 +++++++++ ChangeLog.pre-2-6 | 9 +++++++++ ChangeLog.pre-2-8 | 9 +++++++++ docs/reference/ChangeLog | 4 ++++ docs/reference/glib/glib-sections.txt | 1 + glib/gstrfuncs.c | 25 +++++++++++++++++++++++++ glib/gstrfuncs.h | 2 ++ tests/strfunc-test.c | 2 ++ 10 files changed, 79 insertions(+) diff --git a/ChangeLog b/ChangeLog index 1afdcd7..eb0458b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +Thu Sep 9 00:10:40 2004 Matthias Clasen + + * glib/gstrfuncs.h: + * glib/gstrfuncs.c (g_strv_length): Add a function to + calculate the length of a NULL-terminated string + array. (#150455, Tim-Philipp Müller) + + * tests/strfunc-test.c (main): Add a test for g_strv_length(). + 2004-09-08 Tor Lillqvist * glib/gutils.c (guess_category_value): On Win32, as last resort diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 1afdcd7..eb0458b 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,12 @@ +Thu Sep 9 00:10:40 2004 Matthias Clasen + + * glib/gstrfuncs.h: + * glib/gstrfuncs.c (g_strv_length): Add a function to + calculate the length of a NULL-terminated string + array. (#150455, Tim-Philipp Müller) + + * tests/strfunc-test.c (main): Add a test for g_strv_length(). + 2004-09-08 Tor Lillqvist * glib/gutils.c (guess_category_value): On Win32, as last resort diff --git a/ChangeLog.pre-2-12 b/ChangeLog.pre-2-12 index 1afdcd7..eb0458b 100644 --- a/ChangeLog.pre-2-12 +++ b/ChangeLog.pre-2-12 @@ -1,3 +1,12 @@ +Thu Sep 9 00:10:40 2004 Matthias Clasen + + * glib/gstrfuncs.h: + * glib/gstrfuncs.c (g_strv_length): Add a function to + calculate the length of a NULL-terminated string + array. (#150455, Tim-Philipp Müller) + + * tests/strfunc-test.c (main): Add a test for g_strv_length(). + 2004-09-08 Tor Lillqvist * glib/gutils.c (guess_category_value): On Win32, as last resort diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index 1afdcd7..eb0458b 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,12 @@ +Thu Sep 9 00:10:40 2004 Matthias Clasen + + * glib/gstrfuncs.h: + * glib/gstrfuncs.c (g_strv_length): Add a function to + calculate the length of a NULL-terminated string + array. (#150455, Tim-Philipp Müller) + + * tests/strfunc-test.c (main): Add a test for g_strv_length(). + 2004-09-08 Tor Lillqvist * glib/gutils.c (guess_category_value): On Win32, as last resort diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index 1afdcd7..eb0458b 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,12 @@ +Thu Sep 9 00:10:40 2004 Matthias Clasen + + * glib/gstrfuncs.h: + * glib/gstrfuncs.c (g_strv_length): Add a function to + calculate the length of a NULL-terminated string + array. (#150455, Tim-Philipp Müller) + + * tests/strfunc-test.c (main): Add a test for g_strv_length(). + 2004-09-08 Tor Lillqvist * glib/gutils.c (guess_category_value): On Win32, as last resort diff --git a/docs/reference/ChangeLog b/docs/reference/ChangeLog index 43f7cbd..f66d1be 100644 --- a/docs/reference/ChangeLog +++ b/docs/reference/ChangeLog @@ -1,3 +1,7 @@ +Thu Sep 9 00:11:19 2004 Matthias Clasen + + * glib/glib-sections.txt: Add g_strv_length(). + 2004-09-07 Matthias Clasen * glib/glib-sections.txt: Add g_get_language_names(). diff --git a/docs/reference/glib/glib-sections.txt b/docs/reference/glib/glib-sections.txt index 89557b7..0b83b81 100644 --- a/docs/reference/glib/glib-sections.txt +++ b/docs/reference/glib/glib-sections.txt @@ -1085,6 +1085,7 @@ g_strfreev g_strconcat g_strjoin g_strjoinv +g_strv_length g_strerror diff --git a/glib/gstrfuncs.c b/glib/gstrfuncs.c index ececffa..f551145 100644 --- a/glib/gstrfuncs.c +++ b/glib/gstrfuncs.c @@ -2696,3 +2696,28 @@ g_strip_context (const gchar *msgid, return msgval; } + + +/** + * g_strv_length: + * @str_array: a %NULL-terminated array of strings. + * + * Returns the length of the given %NULL-terminated + * string array @str_array. + * + * Return value: length of @str_array. + * + * Since: 2.6 + **/ +guint +g_strv_length (gchar **str_array) +{ + guint i = 0; + + g_return_val_if_fail (str_array != NULL, 0); + + while (str_array[i]) + ++i; + + return i; +} diff --git a/glib/gstrfuncs.h b/glib/gstrfuncs.h index 9281068..c5a7522 100644 --- a/glib/gstrfuncs.h +++ b/glib/gstrfuncs.h @@ -219,6 +219,7 @@ gpointer g_memdup (gconstpointer mem, * optional separator, the returned string is newly allocated. * g_strfreev() frees the array itself and all of its strings. * g_strdupv() copies a NULL-terminated array of strings + * g_strv_length() returns the length of a NULL-terminated array of strings */ gchar** g_strsplit (const gchar *string, const gchar *delimiter, @@ -230,6 +231,7 @@ gchar* g_strjoinv (const gchar *separator, gchar **str_array); void g_strfreev (gchar **str_array); gchar** g_strdupv (gchar **str_array); +guint g_strv_length (gchar **str_array); gchar* g_stpcpy (gchar *dest, const char *src); diff --git a/tests/strfunc-test.c b/tests/strfunc-test.c index eab248f..09fb1c5 100644 --- a/tests/strfunc-test.c +++ b/tests/strfunc-test.c @@ -551,5 +551,7 @@ main (int argc, TEST (NULL, 9 == g_snprintf (buf, 5, "%s", "abcdefghi")); } + TEST (NULL, g_strv_length (g_strsplit ("1,2,3,4", ",", -1)) == 4); + return any_failed; } -- 2.7.4