Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2009-04-09 14:37:58 +0400
committerCorinna Vinschen <corinna@vinschen.de>2009-04-09 14:37:58 +0400
commita29a76934280b14aa7f13bbb3e86b1a8a2bcdfb7 (patch)
treeac75b5c4c52c57f827c51e86ea4602bd48e8150f
parent2d647173bb2056dfd87a184ac2b6e5ded660a466 (diff)
* 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.
-rw-r--r--newlib/ChangeLog16
-rw-r--r--newlib/libc/ctype/ctype_.c2
-rw-r--r--newlib/libc/ctype/ctype_cp.h104
-rw-r--r--newlib/libc/ctype/ctype_iso.h64
-rw-r--r--newlib/libc/ctype/isblank.c2
-rw-r--r--newlib/libc/ctype/islower.c2
-rw-r--r--newlib/libc/ctype/isupper.c2
-rw-r--r--newlib/libc/include/ctype.h10
8 files changed, 110 insertions, 92 deletions
diff --git a/newlib/ChangeLog b/newlib/ChangeLog
index aba64d5cc..69a760f58 100644
--- a/newlib/ChangeLog
+++ b/newlib/ChangeLog
@@ -1,5 +1,21 @@
2009-04-09 Corinna Vinschen <corinna@vinschen.de>
+ * 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 <corinna@vinschen.de>
+
* libc/stdlib/local.h (__mbtowc): Declare extern.
(__wctomb): Ditto.
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, \
- _P, _P, _P, _P, _P, _P, _P, _P, \
- _P, _P, _L, _L, 0, 0, 0, 0
+ _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, _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