New functions g_str_has_suffix and g_str_has_prefix.
authorAlex Larsson <alexl@redhat.com>
Tue, 14 May 2002 18:49:50 +0000 (18:49 +0000)
committerAlexander Larsson <alexl@src.gnome.org>
Tue, 14 May 2002 18:49:50 +0000 (18:49 +0000)
2002-05-14  Alex Larsson <alexl@redhat.com>

* glib/gstrfuncs.c:
* glib/gstrfuncs.h:
New functions g_str_has_suffix and g_str_has_prefix.

* tests/string-test.c: (main):
Test the new functions.

ChangeLog
ChangeLog.pre-2-10
ChangeLog.pre-2-12
ChangeLog.pre-2-2
ChangeLog.pre-2-4
ChangeLog.pre-2-6
ChangeLog.pre-2-8
glib/gstrfuncs.c
glib/gstrfuncs.h
tests/string-test.c

index 73bd956..21dc1b7 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2002-05-14  Alex Larsson <alexl@redhat.com>
+       
+       * glib/gstrfuncs.c: 
+       * glib/gstrfuncs.h:
+       New functions g_str_has_suffix and g_str_has_prefix.
+       
+       * tests/string-test.c: (main):
+       Test the new functions.
+
 Mon May 13 23:20:00 2002  Owen Taylor  <otaylor@redhat.com>
 
        * autogen.sh (have_gettext): Add a check for GNU gettext.
index 73bd956..21dc1b7 100644 (file)
@@ -1,3 +1,12 @@
+2002-05-14  Alex Larsson <alexl@redhat.com>
+       
+       * glib/gstrfuncs.c: 
+       * glib/gstrfuncs.h:
+       New functions g_str_has_suffix and g_str_has_prefix.
+       
+       * tests/string-test.c: (main):
+       Test the new functions.
+
 Mon May 13 23:20:00 2002  Owen Taylor  <otaylor@redhat.com>
 
        * autogen.sh (have_gettext): Add a check for GNU gettext.
index 73bd956..21dc1b7 100644 (file)
@@ -1,3 +1,12 @@
+2002-05-14  Alex Larsson <alexl@redhat.com>
+       
+       * glib/gstrfuncs.c: 
+       * glib/gstrfuncs.h:
+       New functions g_str_has_suffix and g_str_has_prefix.
+       
+       * tests/string-test.c: (main):
+       Test the new functions.
+
 Mon May 13 23:20:00 2002  Owen Taylor  <otaylor@redhat.com>
 
        * autogen.sh (have_gettext): Add a check for GNU gettext.
index 73bd956..21dc1b7 100644 (file)
@@ -1,3 +1,12 @@
+2002-05-14  Alex Larsson <alexl@redhat.com>
+       
+       * glib/gstrfuncs.c: 
+       * glib/gstrfuncs.h:
+       New functions g_str_has_suffix and g_str_has_prefix.
+       
+       * tests/string-test.c: (main):
+       Test the new functions.
+
 Mon May 13 23:20:00 2002  Owen Taylor  <otaylor@redhat.com>
 
        * autogen.sh (have_gettext): Add a check for GNU gettext.
index 73bd956..21dc1b7 100644 (file)
@@ -1,3 +1,12 @@
+2002-05-14  Alex Larsson <alexl@redhat.com>
+       
+       * glib/gstrfuncs.c: 
+       * glib/gstrfuncs.h:
+       New functions g_str_has_suffix and g_str_has_prefix.
+       
+       * tests/string-test.c: (main):
+       Test the new functions.
+
 Mon May 13 23:20:00 2002  Owen Taylor  <otaylor@redhat.com>
 
        * autogen.sh (have_gettext): Add a check for GNU gettext.
index 73bd956..21dc1b7 100644 (file)
@@ -1,3 +1,12 @@
+2002-05-14  Alex Larsson <alexl@redhat.com>
+       
+       * glib/gstrfuncs.c: 
+       * glib/gstrfuncs.h:
+       New functions g_str_has_suffix and g_str_has_prefix.
+       
+       * tests/string-test.c: (main):
+       Test the new functions.
+
 Mon May 13 23:20:00 2002  Owen Taylor  <otaylor@redhat.com>
 
        * autogen.sh (have_gettext): Add a check for GNU gettext.
index 73bd956..21dc1b7 100644 (file)
@@ -1,3 +1,12 @@
+2002-05-14  Alex Larsson <alexl@redhat.com>
+       
+       * glib/gstrfuncs.c: 
+       * glib/gstrfuncs.h:
+       New functions g_str_has_suffix and g_str_has_prefix.
+       
+       * tests/string-test.c: (main):
+       Test the new functions.
+
 Mon May 13 23:20:00 2002  Owen Taylor  <otaylor@redhat.com>
 
        * autogen.sh (have_gettext): Add a check for GNU gettext.
index ba72664..6b5bbb1 100644 (file)
@@ -2270,3 +2270,59 @@ g_strrstr_len (const gchar *haystack,
 }
 
 
+/**
+ * g_str_has_suffix:
+ * @str: a nul-terminated string.
+ * @suffix: the nul-terminated suffix to look for.
+ *
+ * Looks whether the string @str ends with @suffix.
+ *
+ * Return value: TRUE if @str end with @suffix, FALSE otherwise.
+ **/
+gboolean
+g_str_has_suffix (const gchar  *str,
+                 const gchar  *suffix)
+{
+  int str_len;
+  int suffix_len;
+  
+  g_return_val_if_fail (str != NULL, FALSE);
+  g_return_val_if_fail (suffix != NULL, FALSE);
+
+  str_len = strlen (str);
+  suffix_len = strlen (suffix);
+
+  if (str_len < suffix_len)
+    return FALSE;
+
+  return strcmp (str + str_len - suffix_len, suffix) == 0;
+}
+
+/**
+ * g_str_has_prefix:
+ * @str: a nul-terminated string.
+ * @prefix: the nul-terminated prefix to look for.
+ *
+ * Looks whether the string @str begins with @prefix.
+ *
+ * Return value: TRUE if @str begins with @prefix, FALSE otherwise.
+ **/
+gboolean
+g_str_has_prefix (const gchar  *str,
+                 const gchar  *prefix)
+{
+  int str_len;
+  int prefix_len;
+  
+  g_return_val_if_fail (str != NULL, FALSE);
+  g_return_val_if_fail (prefix != NULL, FALSE);
+
+  str_len = strlen (str);
+  prefix_len = strlen (prefix);
+
+  if (str_len < prefix_len)
+    return FALSE;
+  
+  return strncmp (str, prefix, prefix_len) == 0;
+}
+
index 0c4f59e..40c249a 100644 (file)
@@ -116,6 +116,11 @@ gchar *               g_strrstr_len    (const gchar  *haystack,
                                        gssize        haystack_len,
                                        const gchar  *needle);
 
+gboolean              g_str_has_suffix (const gchar  *str,
+                                       const gchar  *suffix);
+gboolean              g_str_has_prefix (const gchar  *str,
+                                       const gchar  *prefix);
+
 /* String to/from double conversion functions */
 
 gdouble                      g_strtod         (const gchar  *nptr,
index 7ae3149..555d2e1 100644 (file)
@@ -210,6 +210,22 @@ main (int   argc,
   g_string_free (string1, TRUE);
   g_string_free (string2, TRUE);
   
+  g_assert (g_str_has_prefix("foobar", "gazonk") == FALSE);
+  g_assert (g_str_has_prefix("xyzzy", "xyzzy") == TRUE);
+  g_assert (g_str_has_prefix("xyzzy", "xy") == TRUE);
+  g_assert (g_str_has_prefix("xyzzy", "") == TRUE);
+  g_assert (g_str_has_prefix("xyz", "xyzzy") == FALSE);
+  g_assert (g_str_has_prefix("", "xyzzy") == FALSE);
+  g_assert (g_str_has_prefix("", "") == TRUE);
+
+  g_assert (g_str_has_suffix("foobar", "gazonk") == FALSE);
+  g_assert (g_str_has_suffix("xyzzy", "xyzzy") == TRUE);
+  g_assert (g_str_has_suffix("xyzzy", "zy") == TRUE);
+  g_assert (g_str_has_suffix("xyzzy", "") == TRUE);
+  g_assert (g_str_has_suffix("zzy", "xyzzy") == FALSE);
+  g_assert (g_str_has_suffix("", "xyzzy") == FALSE);
+  g_assert (g_str_has_suffix("", "") == TRUE);
+
   return 0;
 }