Removed the non-LOCALE character code and the #ifdefs and simplified.
authormarkus schnalke <meillo@marmaro.de>
Thu, 5 Jan 2012 10:52:03 +0000 (11:52 +0100)
committermarkus schnalke <meillo@marmaro.de>
Thu, 5 Jan 2012 10:52:03 +0000 (11:52 +0100)
POSIX says: tolower() won't change its argument if it is not isupper().
And isupper() doesn't need an additional check for isalpha().

sbr/fmt_compile.c
sbr/fmt_scan.c
sbr/gans.c
sbr/m_atoi.c
sbr/uprf.c

index bcd7b3d..cf5c497 100644 (file)
@@ -237,11 +237,7 @@ compile_error(char *str, char *cp)
        usr_fstring[errpos] = '\0';
 
        for (i = errpos-errctx; i < errpos; i++) {
-#ifdef LOCALE
                if (iscntrl(usr_fstring[i]))
-#else
-               if (usr_fstring[i] < 32)
-#endif
                        usr_fstring[i] = '_';
        }
 
index 4f9bce0..2c16dfe 100644 (file)
@@ -57,32 +57,17 @@ match(char *str, char *sub)
        int c1, c2;
        char *s1, *s2;
 
-#ifdef LOCALE
        while ((c1 = *sub)) {
-               c1 = (isalpha(c1) && isupper(c1)) ? tolower(c1) : c1;
-               while ((c2 = *str++) && c1 != ((isalpha(c2) && isupper(c2)) ? tolower(c2) : c2))
+               while ((c2 = *str++) && tolower(c1) != tolower(c2))
                        ;
                if (! c2)
                        return 0;
                s1 = sub + 1; s2 = str;
-               while ((c1 = *s1++) && ((isalpha(c1) && isupper(c1)) ? tolower(c1) : c1) == ((isalpha(c2 =*s2++) && isupper(c2)) ? tolower(c2) : c2))
+               while ((c1 = *s1++) && tolower(c1) == tolower(*s2++))
                        ;
                if (! c1)
                        return 1;
        }
-#else
-       while ((c1 = *sub)) {
-               while ((c2 = *str++) && (c1 | 040) != (c2 | 040))
-                       ;
-               if (! c2)
-                       return 0;
-               s1 = sub + 1; s2 = str;
-               while ((c1 = *s1++) && (c1 | 040) == (*s2++ | 040))
-                       ;
-               if (! c1)
-                       return 1;
-       }
-#endif
        return 1;
 }
 
@@ -217,12 +202,7 @@ cpstripped(char **start, char *end, char *str)
                return;
 
        /* skip any initial control characters or spaces */
-       while ((c = (unsigned char) *s) &&
-#ifdef LOCALE
-                       (iscntrl(c) || isspace(c)))
-#else
-                       (c <= 32))
-#endif
+       while ((c = (unsigned char) *s) && (iscntrl(c) || isspace(c)))
                s++;
 
        /* compact repeated control characters and spaces into a single space */
@@ -231,11 +211,7 @@ cpstripped(char **start, char *end, char *str)
                        *(*start)++ = c;
                else {
                        while ((c = (unsigned char) *s) &&
-#ifdef LOCALE
-                               (iscntrl(c) || isspace(c)))
-#else
-                               (c <= 32))
-#endif
+                                       (iscntrl(c) || isspace(c)))
                                s++;
                        *(*start)++ = ' ';
                }
index 2b9a015..c90bfef 100644 (file)
@@ -25,13 +25,7 @@ gans(char *prompt, struct swit *ansp)
                        if (i == EOF)
                                return 0;
                        if (cp < &ansbuf[sizeof ansbuf - 1]) {
-#ifdef LOCALE
-                               i = (isalpha(i) && isupper(i)) ? tolower(i) : i;
-#else
-                               if (i >= 'A' && i <= 'Z')
-                                       i += 'a' - 'A';
-#endif
-                               *cp++ = i;
+                               *cp++ = tolower(i);
                        }
                }
                *cp = '\0';
index 03bf0d0..b903b7e 100644 (file)
@@ -18,11 +18,7 @@ m_atoi(char *str)
        unsigned char *cp;
 
        for (i = 0, cp = str; *cp; cp++) {
-#ifdef LOCALE
                if (!isdigit(*cp))
-#else
-               if (*cp < '0' || *cp > '9')
-#endif
                        return 0;
 
                i *= 10;
index 836a98b..77137c9 100644 (file)
@@ -8,9 +8,6 @@
 
 #include <h/mh.h>
 
-#define TO_LOWER 040
-#define NO_MASK  000
-
 
 int
 uprf(char *c1, char *c2)
@@ -21,16 +18,7 @@ uprf(char *c1, char *c2)
                return 0;
 
        while ((c = *c2++)) {
-#ifdef LOCALE
-               c &= 0xff;
-               mask = *c1 & 0xff;
-               c = (isalpha(c) && isupper(c)) ? tolower(c) : c;
-               mask = (isalpha(mask) && isupper(mask)) ? tolower(mask) : mask;
-               if (c != mask)
-#else
-               mask = (isalpha(c) && isalpha(*c1)) ?  TO_LOWER : NO_MASK;
-               if ((c | mask) != (*c1 | mask))
-#endif
+               if (tolower(c &= 0xff) != tolower(*c1 & 0xff))
                        return 0;
                else
                        c1++;