r13336: Doh! We actually never optimized for the ascii case.
authorSimo Sorce <idra@samba.org>
Sat, 4 Feb 2006 08:55:35 +0000 (08:55 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 18:51:45 +0000 (13:51 -0500)
In the 3.0 branches it is fixed this but we missed it for samba4

source/lib/util_str.c

index 6da0063c504d19a0b5df5c00bd90d31746d21c63..b46787e3ea296c206254a8ff1597be3e370cd07f 100644 (file)
@@ -796,7 +796,7 @@ void strlower_m(char *s)
           fast. We optimise for the ascii case, knowing that all our
           supported multi-byte character sets are ascii-compatible
           (ie. they match for the first 128 chars) */
-       while (*s && !(((uint8_t)s[0]) & 0x7F)) {
+       while (*s && !(((uint8_t)*s) & 0x80)) {
                *s = tolower((uint8_t)*s);
                s++;
        }
@@ -832,7 +832,7 @@ void strupper_m(char *s)
           fast. We optimise for the ascii case, knowing that all our
           supported multi-byte character sets are ascii-compatible
           (ie. they match for the first 128 chars) */
-       while (*s && !(((uint8_t)s[0]) & 0x7F)) {
+       while (*s && !(((uint8_t)*s) & 0x80)) {
                *s = toupper((uint8_t)*s);
                s++;
        }
@@ -870,7 +870,7 @@ size_t strlen_m(const char *s)
                return 0;
        }
 
-       while (*s && !(((uint8_t)s[0]) & 0x7F)) {
+       while (*s && !(((uint8_t)*s) & 0x80)) {
                s++;
                count++;
        }