diff --git a/newlib/ChangeLog b/newlib/ChangeLog index aba64d5cc..69a760f58 100644 --- a/newlib/ChangeLog +++ b/newlib/ChangeLog @@ -1,3 +1,19 @@ +2009-04-09 Corinna Vinschen + + * libc/ctype/ctype_.c (_CTYPE_DATA_0_127): Remove _B flag from TAB. + * libc/ctype/ctype_cp.h: Mark non-cased letters in tables for codepages + 720, 862, 874, 1255, and 1256 to _U|_L. Fix a couple of incorrect + class mappings. + * libc/ctype/ctype_iso.h: Mark non-cased letters in ISO-8859 tables + 6, 8, and 11 to _U|_L. Fix a couple of incorrect class mappings. + * libc/ctype/isblank.c (isblank): Special case TAB. + * libc/ctype/islower.c (islower): Check explicitely for _L flag only + in (_U|_L). + * libc/ctype/isupper.c (isupper): Ditto, but check for _U flag. + * libc/include/ctype.h (islower): Same in macro. + (isupper): Ditto. + (isblank): Special case TAB. Redefine macro for GCC only. + 2009-04-09 Corinna Vinschen * libc/stdlib/local.h (__mbtowc): Declare extern. diff --git a/newlib/libc/ctype/ctype_.c b/newlib/libc/ctype/ctype_.c index 4efdfa4d1..6c5bebcc1 100644 --- a/newlib/libc/ctype/ctype_.c +++ b/newlib/libc/ctype/ctype_.c @@ -39,7 +39,7 @@ static char sccsid[] = "@(#)ctype_.c 5.6 (Berkeley) 6/1/90"; #define _CTYPE_DATA_0_127 \ _C, _C, _C, _C, _C, _C, _C, _C, \ - _C, _B|_C|_S, _C|_S, _C|_S, _C|_S, _C|_S, _C, _C, \ + _C, _C|_S, _C|_S, _C|_S, _C|_S, _C|_S, _C, _C, \ _C, _C, _C, _C, _C, _C, _C, _C, \ _C, _C, _C, _C, _C, _C, _C, _C, \ _S|_B, _P, _P, _P, _P, _P, _P, _P, \ diff --git a/newlib/libc/ctype/ctype_cp.h b/newlib/libc/ctype/ctype_cp.h index 389a6207b..bad54d8d0 100644 --- a/newlib/libc/ctype/ctype_cp.h +++ b/newlib/libc/ctype/ctype_cp.h @@ -22,17 +22,17 @@ 0, 0, _L, _L, 0, _L, 0, _L, \ _L, _L, _L, _L, _L, 0, 0, 0, \ 0, _P, _P, _L, _P, _P, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - 0, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _P, _P, \ + _U|_L, _U|_L, _U|_L, _U|_L, _P, _U|_L, _U|_L, _U|_L, \ + _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, \ + _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _P, _P, \ _P, _P, _P, _P, _P, _P, _P, _P, \ _P, _P, _P, _P, _P, _P, _P, _P, \ _P, _P, _P, _P, _P, _P, _P, _P, \ _P, _P, _P, _P, _P, _P, _P, _P, \ _P, _P, _P, _P, _P, _P, _P, _P, \ _P, _P, _P, _P, _P, _P, _P, _P, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ + _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _P, _U|_L, \ + _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, \ _P, _P, _P, _P, _P, _P, _P, _P, \ _P, _P, _P, _P, _P, _P, _P, _S|_B #define _CTYPE_CP737_128_256 \ @@ -50,13 +50,13 @@ _P, _P, _P, _P, _P, _P, _P, _P, \ _L, _L, _L, _L, _L, _L, _L, _L, \ _L, _L, _U, _U, _U, _U, _U, _U, \ - _U, _P, _P, _P, _P, _U, _U, _P, \ + _U, _P, _P, _P, _U, _U, _P, _P, \ _P, _P, _P, _P, _P, _P, _P, _S|_B #define _CTYPE_CP775_128_256 \ _U, _L, _L, _L, _L, _L, _L, _L, \ _L, _L, _U, _L, _L, _U, _U, _U, \ _U, _L, _U, _L, _L, _U, _P, _U, \ - _L, _U, _U, _P, _P, _P, _P, _P, \ + _L, _U, _U, _L, _P, _U, _P, _P, \ _U, _U, _L, _U, _L, _L, _P, _P, \ _P, _P, _P, _P, _P, _U, _P, _P, \ _P, _P, _P, _P, _P, _U, _U, _U, \ @@ -65,7 +65,7 @@ _P, _P, _P, _P, _P, _P, _P, _U, \ _L, _L, _L, _L, _L, _L, _L, _L, \ _L, _P, _P, _P, _P, _P, _P, _P, \ - _U, _L, _U, _U, _L, _U, _L, _L, \ + _U, _L, _U, _U, _L, _U, _P, _L, \ _U, _L, _U, _L, _L, _U, _U, _P, \ _P, _P, _P, _P, _P, _P, _P, _P, \ _P, _P, _P, _P, _P, _P, _P, _S|_B @@ -73,7 +73,7 @@ _U, _L, _L, _L, _L, _L, _L, _L, \ _L, _L, _L, _L, _L, _L, _U, _U, \ _U, _L, _U, _L, _L, _L, _L, _L, \ - _L, _U, _U, _L, _P, _U, _P, _P, \ + _L, _U, _U, _L, _P, _U, _P, _L, \ _L, _L, _L, _L, _L, _U, _P, _P, \ _P, _P, _P, _P, _P, _P, _P, _P, \ _P, _P, _P, _P, _P, _U, _U, _U, \ @@ -82,8 +82,8 @@ _P, _P, _P, _P, _P, _P, _P, _P, \ _L, _U, _U, _U, _U, _L, _U, _U, \ _U, _P, _P, _P, _P, _P, _U, _P, \ - _U, _L, _U, _U, _L, _U, _L, _U, \ - _L, _U, _U, _U, _L, _U, _P, _P, \ + _U, _L, _U, _U, _L, _U, _P, _L, \ + _U, _U, _U, _U, _L, _U, _P, _P, \ _P, _P, _P, _P, _P, _P, _P, _P, \ _P, _P, _P, _P, _P, _P, _P, _S|_B #define _CTYPE_CP852_128_256 \ @@ -131,17 +131,17 @@ _P, _P, _P, _P, _P, _P, _P, _P, \ _P, _P, _P, _P, _P, _P, _L, _U, \ _P, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _U, _U, _U, _L, _U, _U, \ + _P, _P, _U, _U, _U, 0, _U, _U, \ _U, _P, _P, _P, _P, _P, _U, _P, \ - _U, _L, _U, _U, _L, _U, _L, _L, \ + _U, _L, _U, _U, _L, _U, _P, 0, \ _P, _U, _U, _U, _L, _L, _P, _P, \ - _P, _P, _L, _P, _P, _P, _P, _P, \ + _P, _P, 0, _P, _P, _P, _P, _P, \ _P, _P, _P, _P, _P, _P, _P, _S|_B #define _CTYPE_CP858_128_256 \ _U, _L, _L, _L, _L, _L, _L, _L, \ _L, _L, _L, _L, _L, _L, _U, _U, \ _U, _L, _U, _L, _L, _L, _L, _L, \ - _L, _U, _U, _L, _P, _U, _P, _P, \ + _L, _U, _U, _L, _P, _U, _P, _L, \ _L, _L, _L, _L, _L, _U, _P, _P, \ _P, _P, _P, _P, _P, _P, _P, _P, \ _P, _P, _P, _P, _P, _U, _U, _U, \ @@ -150,15 +150,15 @@ _P, _P, _P, _P, _P, _P, _P, _P, \ _L, _U, _U, _U, _U, _P, _U, _U, \ _U, _P, _P, _P, _P, _P, _U, _P, \ - _U, _L, _U, _U, _L, _U, _L, _U, \ - _L, _U, _U, _U, _L, _U, _P, _P, \ + _U, _L, _U, _U, _L, _U, _P, _L, \ + _U, _U, _U, _U, _L, _U, _P, _P, \ _P, _P, _P, _P, _P, _P, _P, _P, \ _P, _P, _P, _P, _P, _P, _P, _S|_B #define _CTYPE_CP862_128_256 \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _P, _P, _P, _P, _P, \ + _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, \ + _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, \ + _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, \ + _U|_L, _U|_L, _U|_L, _P, _P, _P, _P, _L, \ _L, _L, _L, _L, _L, _U, _P, _P, \ _P, _P, _P, _P, _P, _P, _P, _P, \ _P, _P, _P, _P, _P, _P, _P, _P, \ @@ -193,18 +193,18 @@ 0, 0, 0, 0, 0, 0, 0, 0, \ 0, _P, _P, _P, _P, _P, _P, _P, \ 0, 0, 0, 0, 0, 0, 0, 0, \ - _S|_B, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, 0, 0, 0, 0, _P, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ + _S|_B, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, \ + _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, \ + _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, \ + _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, \ + _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, \ + _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, \ + _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, \ + _U|_L, _U|_L, _U|_L, 0, 0, 0, 0, _P, \ + _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, \ + _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, \ _P, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _L, _L, 0, 0, 0, 0 + _P, _P, _U|_L, _U|_L, 0, 0, 0, 0 #define _CTYPE_CP1125_128_256 \ _U, _U, _U, _U, _U, _U, _U, _U, \ _U, _U, _U, _U, _U, _U, _U, _U, \ @@ -243,7 +243,7 @@ _U, _U, _P, _L, _P, _P, _P, _P, \ _P, _P, _U, _P, _U, _U, _U, _U, \ _L, _P, _P, _P, _P, _P, _P, _P, \ - _L, _P, _L, _L, _L, _L, _P, _U, \ + 0, _P, _L, _P, _L, _L, _L, _L, \ _S|_B, _U, _L, _U, _P, _U, _P, _P, \ _U, _P, _U, _P, _P, _P, _P, _U, \ _P, _P, _U, _L, _L, _P, _P, _P, \ @@ -277,7 +277,7 @@ _P, 0, _P, _L, _P, _P, _P, _P, \ 0, _P, 0, _P, 0, 0, 0, 0, \ 0, _P, _P, _P, _P, _P, _P, _P, \ - 0, _P, _P, 0, 0, 0, 0, 0, \ + 0, _P, 0, _P, 0, 0, 0, 0, \ _S|_B, _P, _U, _P, _P, _P, _P, _P, \ _P, _P, 0, _P, _P, _P, _P, _P, \ _P, _P, _P, _P, _P, _P, _P, _P, \ @@ -318,29 +318,29 @@ _P, _P, _P, _P, _P, _P, _P, _P, \ _P, _P, _P, _P, _P, _P, _P, _P, \ _P, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ + _P, _P, _P, _P, _U|_L, _U|_L, _U|_L, _P, \ _P, 0, 0, 0, 0, 0, 0, 0, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, 0, 0, _P, _P, 0 + _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, \ + _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, \ + _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, \ + _U|_L, _U|_L, _U|_L, 0, 0, _P, _P, 0 #define _CTYPE_CP1256_128_256 \ - _P, _L, _P, _L, _P, _P, _P, _P, \ - _P, _P, _L, _P, _U, _L, _L, _L, \ - _L, _P, _P, _P, _P, _P, _P, _P, \ - _L, _P, _L, _P, _L, _P, _P, _L, \ + _P, _U|_L, _P, _L, _P, _P, _P, _P, \ + _P, _P, _U|_L, _P, _U, _U|_L, _U|_L, _U|_L, \ + _U|_L, _P, _P, _P, _P, _P, _P, _P, \ + _U|_L, _P, _U|_L, _P, _L, _P, _P, _U|_L, \ _S|_B, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _L, _P, _P, _P, _P, _P, \ + _P, _P, _U|_L, _P, _P, _P, _P, _P, \ _P, _P, _P, _P, _P, _P, _P, _P, \ _P, _P, _P, _P, _P, _P, _P, _P, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L, _P, \ - _L, _L, _L, _L, _P, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ + _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, \ + _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, \ + _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _P, \ + _U|_L, _U|_L, _U|_L, _U|_L, _P, _U|_L, _U|_L, _U|_L, \ + _L, _U|_L, _L, _U|_L, _U|_L, _U|_L, _U|_L, _L, \ + _L, _L, _L, _L, _U|_L, _U|_L, _L, _L, \ _P, _P, _P, _P, _L, _P, _P, _P, \ - _P, _L, _P, _L, _L, _P, _P, _L + _P, _L, _P, _L, _L, _P, _P, _U|_L #define _CTYPE_CP1257_128_256 \ _P, 0, _P, 0, _P, _P, _P, _P, \ 0, _P, 0, _P, 0, _P, _P, _P, \ diff --git a/newlib/libc/ctype/ctype_iso.h b/newlib/libc/ctype/ctype_iso.h index 3bd96c45b..6503e5d54 100644 --- a/newlib/libc/ctype/ctype_iso.h +++ b/newlib/libc/ctype/ctype_iso.h @@ -34,7 +34,7 @@ _L, _L, _L, _L, _L, _L, _L, _L, \ _L, _L, _L, _L, _L, _L, _L, _L, \ _L, _L, _L, _L, _L, _L, _L, _P, \ - _L, _L, _L, _L, _L, _L, _L, _L + _L, _L, _L, _L, _L, _L, _L, _P #define _CTYPE_ISO_8859_3_128_256 \ _C, _C, _C, _C, _C, _C, _C, _C, \ _C, _C, _C, _C, _C, _C, _C, _C, \ @@ -42,7 +42,7 @@ _C, _C, _C, _C, _C, _C, _C, _C, \ _S|_B, _U, _P, _P, _P, 0, _U, _P, \ _P, _U, _U, _U, _U, _P, 0, _U, \ - _P, _L, _P, _P, _P, _L, _L, _P, \ + _P, _L, _P, _P, _P, _P, _L, _P, \ _P, _L, _L, _L, _L, _P, 0, _L, \ _U, _U, _U, 0, _U, _U, _U, _U, \ _U, _U, _U, _U, _U, _U, _U, _U, \ @@ -95,12 +95,12 @@ 0, 0, 0, 0, _P, _P, 0, 0, \ 0, 0, 0, 0, 0, 0, 0, 0, \ 0, 0, 0, _P, 0, 0, 0, _P, \ - 0, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - 0, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, 0, 0, 0, 0, 0, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _P, _P, _P, _P, _P, \ + 0, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, \ + _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, \ + _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, \ + _U|_L, _U|_L, _U|_L, 0, 0, 0, 0, 0, \ + _P, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, \ + _U|_L, _U|_L, _U|_L, _P, _P, _P, _P, _P, \ _P, _P, _P, 0, 0, 0, 0, 0, \ 0, 0, 0, 0, 0, 0, 0, 0 #define _CTYPE_ISO_8859_7_128_256 \ @@ -109,7 +109,7 @@ _C, _C, _C, _C, _C, _C, _C, _C, \ _C, _C, _C, _C, _C, _C, _C, _C, \ _S|_B, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ + _P, _P, _P, _P, _P, _P, 0, _P, \ _P, _P, _P, _P, _P, _P, _U, _P, \ _U, _U, _U, _P, _U, _P, _U, _U, \ _L, _U, _U, _U, _U, _U, _U, _U, \ @@ -119,7 +119,7 @@ _L, _L, _L, _L, _L, _L, _L, _L, \ _L, _L, _L, _L, _L, _L, _L, _L, \ _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L, _P + _L, _L, _L, _L, _L, _L, _L, 0 #define _CTYPE_ISO_8859_8_128_256 \ _C, _C, _C, _C, _C, _C, _C, _C, \ _C, _C, _C, _C, _C, _C, _C, _C, \ @@ -132,11 +132,11 @@ 0, 0, 0, 0, 0, 0, 0, 0, \ 0, 0, 0, 0, 0, 0, 0, 0, \ 0, 0, 0, 0, 0, 0, 0, 0, \ - 0, 0, 0, 0, 0, 0, 0, _L, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, 0, 0, _P, _P, 0 + 0, 0, 0, 0, 0, 0, 0, _P, \ + _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, \ + _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, \ + _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, \ + _U|_L, _U|_L, _U|_L, 0, 0, _P, _P, 0 #define _CTYPE_ISO_8859_9_128_256 \ _C, _C, _C, _C, _C, _C, _C, _C, \ _C, _C, _C, _C, _C, _C, _C, _C, \ @@ -176,27 +176,27 @@ _C, _C, _C, _C, _C, _C, _C, _C, \ _C, _C, _C, _C, _C, _C, _C, _C, \ _C, _C, _C, _C, _C, _C, _C, _C, \ - _S|_B, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _P, _L, _L, _P, _P, _P, _P, \ + _S|_B, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, \ + _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, \ + _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, \ + _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, \ + _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, \ + _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, \ + _U|_L, _P, _U|_L, _U|_L, _P, _P, _P, _P, \ _P, _P, _P, 0, 0, 0, 0, _P, \ - _L, _L, _L, _L, _L, _L, _L, _P, \ - _P, _P, _P, _P, _P, _P, _P, _L, \ - _L, _L, _L, _L, _L, _L, _L, _L, \ - _L, _L, _L, _L, 0, 0, 0, 0 + _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _P, \ + _P, _P, _P, _P, _P, _P, _P, _U|_L, \ + _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, _U|_L, \ + _U|_L, _U|_L, _U|_L, _U|_L, 0, 0, 0, 0 #define _CTYPE_ISO_8859_13_128_256 \ _C, _C, _C, _C, _C, _C, _C, _C, \ _C, _C, _C, _C, _C, _C, _C, _C, \ _C, _C, _C, _C, _C, _C, _C, _C, \ _C, _C, _C, _C, _C, _C, _C, _C, \ _S|_B, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _U, _P, _P, _P, _P, _P, \ + _U, _P, _U, _P, _P, _P, _P, _P, \ _P, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _L, _P, _P, _P, _P, _P, \ + _L, _P, _L, _P, _P, _P, _P, _P, \ _U, _U, _U, _U, _U, _U, _U, _U, \ _U, _U, _U, _U, _U, _U, _U, _U, \ _U, _U, _U, _U, _U, _U, _U, _P, \ @@ -227,10 +227,10 @@ _C, _C, _C, _C, _C, _C, _C, _C, \ _C, _C, _C, _C, _C, _C, _C, _C, \ _C, _C, _C, _C, _C, _C, _C, _C, \ - _S|_B, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ - _P, _P, _P, _P, _P, _P, _P, _P, \ + _S|_B, _P, _P, _P, _P, _P, _U, _P, \ + _L, _P, _P, _P, _P, _P, _P, _P, \ + _P, _P, _P, _P, _U, _P, _P, _P, \ + _L, _P, _P, _P, _U, _L, _U, _P, \ _U, _U, _U, _U, _U, _U, _U, _U, \ _U, _U, _U, _U, _U, _U, _U, _U, \ _U, _U, _U, _U, _U, _U, _U, _P, \ diff --git a/newlib/libc/ctype/isblank.c b/newlib/libc/ctype/isblank.c index 0567b40b9..f4d38b95c 100644 --- a/newlib/libc/ctype/isblank.c +++ b/newlib/libc/ctype/isblank.c @@ -37,5 +37,5 @@ No supporting OS subroutines are required. int _DEFUN(isblank,(c),int c) { - return(__ctype_ptr__[c+1] & _B); + return ((__ctype_ptr__[c+1] & _B) || (c == '\t')); } diff --git a/newlib/libc/ctype/islower.c b/newlib/libc/ctype/islower.c index 098e56c54..bef010b8b 100644 --- a/newlib/libc/ctype/islower.c +++ b/newlib/libc/ctype/islower.c @@ -38,6 +38,6 @@ No supporting OS subroutines are required. int _DEFUN(islower,(c),int c) { - return(__ctype_ptr__[c+1] & _L); + return ((__ctype_ptr__[c+1] & (_U|_L)) == _L); } diff --git a/newlib/libc/ctype/isupper.c b/newlib/libc/ctype/isupper.c index d6cc6ecc4..4994af215 100644 --- a/newlib/libc/ctype/isupper.c +++ b/newlib/libc/ctype/isupper.c @@ -38,6 +38,6 @@ No supporting OS subroutines are required. int _DEFUN(isupper,(c),int c) { - return(__ctype_ptr__[c+1] & _U); + return ((__ctype_ptr__[c+1] & (_U|_L)) == _U); } diff --git a/newlib/libc/include/ctype.h b/newlib/libc/include/ctype.h index d223dd09a..c2e393b31 100644 --- a/newlib/libc/include/ctype.h +++ b/newlib/libc/include/ctype.h @@ -46,8 +46,8 @@ extern __IMPORT char *__ctype_ptr__; #ifndef __cplusplus #define isalpha(c) ((__ctype_ptr__)[(unsigned)((c)+1)]&(_U|_L)) -#define isupper(c) ((__ctype_ptr__)[(unsigned)((c)+1)]&_U) -#define islower(c) ((__ctype_ptr__)[(unsigned)((c)+1)]&_L) +#define isupper(c) (((__ctype_ptr__)[(unsigned)((c)+1)]&(_U|_L))==_U) +#define islower(c) (((__ctype_ptr__)[(unsigned)((c)+1)]&(_U|_L))==_L) #define isdigit(c) ((__ctype_ptr__)[(unsigned)((c)+1)]&_N) #define isxdigit(c) ((__ctype_ptr__)[(unsigned)((c)+1)]&(_X|_N)) #define isspace(c) ((__ctype_ptr__)[(unsigned)((c)+1)]&_S) @@ -57,8 +57,10 @@ extern __IMPORT char *__ctype_ptr__; #define isgraph(c) ((__ctype_ptr__)[(unsigned)((c)+1)]&(_P|_U|_L|_N)) #define iscntrl(c) ((__ctype_ptr__)[(unsigned)((c)+1)]&_C) -#if !defined(__STRICT_ANSI__) || __STDC_VERSION__ >= 199901L -#define isblank(c) ((__ctype_ptr__)[(unsigned)((c)+1)]&_B) +#if defined(__GNUC__) && \ + (!defined(__STRICT_ANSI__) || __STDC_VERSION__ >= 199901L) +#define isblank(c) \ + __extension__ ({ int __c = (c); ((__ctype_ptr__)[(unsigned)((__c)+1)]&_B) || (__c) == '\t';}) #endif