Author: abock
Date: 2007-05-05 15:53:43 -0400 (Sat, 05 May 2007)
New Revision: 76760

Modified:
   trunk/mono/eglib/ChangeLog
   trunk/mono/eglib/src/glib.h
   trunk/mono/eglib/src/gstr.c
   trunk/mono/eglib/test/string-util.c
Log:
2007-05-05  Aaron Bockover  <[EMAIL PROTECTED]>

    * src/gstr.c:
    * src/glib.h: Added g_ascii_tolower implementation; make g_ascii_strdown
    use it to do the transformation

    * test/string-util.c: Added a test for g_ascii_strdown



Modified: trunk/mono/eglib/ChangeLog
===================================================================
--- trunk/mono/eglib/ChangeLog  2007-05-05 19:37:27 UTC (rev 76759)
+++ trunk/mono/eglib/ChangeLog  2007-05-05 19:53:43 UTC (rev 76760)
@@ -1,3 +1,11 @@
+2007-05-05  Aaron Bockover  <[EMAIL PROTECTED]>
+
+       * src/gstr.c:
+       * src/glib.h: Added g_ascii_tolower implementation; make g_ascii_strdown
+       use it to do the transformation
+
+       * test/string-util.c: Added a test for g_ascii_strdown
+
 2007-04-27  Jonathan Chambers <[EMAIL PROTECTED]>
        
        * src/gstr.c: Fix off by one error in g_strdup allocation.

Modified: trunk/mono/eglib/src/glib.h
===================================================================
--- trunk/mono/eglib/src/glib.h 2007-05-05 19:37:27 UTC (rev 76759)
+++ trunk/mono/eglib/src/glib.h 2007-05-05 19:53:43 UTC (rev 76760)
@@ -236,6 +236,7 @@
 
 gsize       g_strlcpy          (gchar *dest, const gchar *src, gsize 
dest_size);
 
+gchar   g_ascii_tolower      (gchar c);
 gchar  *g_ascii_strdown      (const gchar *str, gssize len);
 gint    g_ascii_strncasecmp  (const gchar *s1, const gchar *s2, gsize n);
 gint    g_ascii_xdigit_value (gchar c);

Modified: trunk/mono/eglib/src/gstr.c
===================================================================
--- trunk/mono/eglib/src/gstr.c 2007-05-05 19:37:27 UTC (rev 76759)
+++ trunk/mono/eglib/src/gstr.c 2007-05-05 19:53:43 UTC (rev 76760)
@@ -539,6 +539,12 @@
        }
 }
 
+gchar
+g_ascii_tolower (gchar c)
+{
+       return c >= 'A' && c <= 'Z' ? c + ('a' - 'A') : c;
+}
+
 gchar *
 g_ascii_strdown (const gchar *str, gssize len)
 {
@@ -551,12 +557,8 @@
                len = strlen (str);
        
        ret = g_malloc (len + 1);
-       for (i = 0; i < len; i++){
-               guchar c = (guchar) str [i];
-               if (c >= 'A' && c <= 'Z')
-                       c += 'a' - 'A';
-               ret [i] = c;
-       }
+       for (i = 0; i < len; i++)
+               ret [i] = (guchar) g_ascii_tolower (str [i]);
        ret [i] = 0;
        
        return ret;

Modified: trunk/mono/eglib/test/string-util.c
===================================================================
--- trunk/mono/eglib/test/string-util.c 2007-05-05 19:37:27 UTC (rev 76759)
+++ trunk/mono/eglib/test/string-util.c 2007-05-05 19:53:43 UTC (rev 76760)
@@ -400,6 +400,27 @@
        return OK;
 }
 
+RESULT
+test_ascii_strdown ()
+{
+       const gchar *a = "~09+AaBcDeFzZ$0909EmPAbCdEEEEEZZZZAAA";
+       const gchar *b = "~09+aabcdefzz$0909empabcdeeeeezzzzaaa";
+       gchar *c;
+       gint n, l;
+
+       l = strlen (b);
+       c = g_ascii_strdown (a, l);
+       n = g_ascii_strncasecmp (b, c, l);
+
+       if (n != 0) {
+               g_free (c);
+               return FAILED ("Should have been 0, got %d", n);
+       }
+
+       g_free (c);
+       return OK;
+}
+
 static Test strutil_tests [] = {
        {"g_strfreev", test_strfreev},
        {"g_strconcat", test_concat},
@@ -416,6 +437,7 @@
        {"g_strlcpy", test_strlcpy},
        {"g_strescape", test_strescape},
        {"g_ascii_strncasecmp", test_ascii_strncasecmp },
+       {"g_ascii_strdown", test_ascii_strdown },
        {NULL, NULL}
 };
 

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to