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