OSDN Git Service

* safe-ctype.h: Make code work on all targets and not just on
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 16 Dec 2000 19:12:06 +0000 (19:12 +0000)
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 16 Dec 2000 19:12:06 +0000 (19:12 +0000)
        targets where a char is 8 bits.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@38312 138bc75d-0d04-0410-961f-82ee72b054a4

include/ChangeLog
include/safe-ctype.h

index 69c04ad..5ce8f1e 100644 (file)
@@ -1,3 +1,8 @@
+2000-12-16  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
+
+       * safe-ctype.h: Make code work on all targets and not just on
+       targets where a char is 8 bits.
+
 2000-12-07  Zack Weinberg  <zack@wolery.stanford.edu>
 
        * safe-ctype.h: New file.
index 977653c..d5fc649 100644 (file)
@@ -66,15 +66,10 @@ enum {
   _sch_iscppsp  = _sch_isvsp|_sch_isnvsp       /* isspace + \0 */
 };
 
-/* This code fundamentally assumes that a byte is 8 bits.  Test this
-   at compile time.  */
-
-extern int a_byte_isnt_eight_bits[(unsigned char)256 == 0 ? 1 : -1];
-
 /* Character classification.  */
 extern const unsigned short _sch_istable[256];
 
-#define _sch_test(c, bit) (_sch_istable[(int)(unsigned char)(c)] & (bit))
+#define _sch_test(c, bit) (_sch_istable[(c) & 0xff] & (bit))
 
 #define ISALPHA(c)  _sch_test(c, _sch_isalpha)
 #define ISALNUM(c)  _sch_test(c, _sch_isalnum)
@@ -98,8 +93,8 @@ extern const unsigned short _sch_istable[256];
 /* Character transformation.  */
 extern const unsigned char  _sch_toupper[256];
 extern const unsigned char  _sch_tolower[256];
-#define TOUPPER(c) _sch_toupper[(int)(unsigned char)(c)]
-#define TOLOWER(c) _sch_tolower[(int)(unsigned char)(c)]
+#define TOUPPER(c) _sch_toupper[(c) & 0xff]
+#define TOLOWER(c) _sch_tolower[(c) & 0xff]
 
 #endif /* no ctype.h */
 #endif /* SAFE_CTYPE_H */