diff --git a/newlib/libc/ctype/ctype_.h b/newlib/libc/ctype/ctype_.h index a73870b3e..42ad2c870 100644 --- a/newlib/libc/ctype/ctype_.h +++ b/newlib/libc/ctype/ctype_.h @@ -1,5 +1,15 @@ #include +/* Define some short names to keep internal files shorter. */ +#define _U _ISupper +#define _L _ISlower +#define _N _ISdigit +#define _S _ISspace +#define _P _ISpunct +#define _C _IScntrl +#define _X _ISxdigit +#define _B _ISblank + #if (defined(__GNUC__) && !defined(__CHAR_UNSIGNED__) && !defined(COMPACT_CTYPE)) || defined (__CYGWIN__) #define ALLOW_NEGATIVE_CTYPE_INDEX #endif diff --git a/newlib/libc/ctype/isalnum.c b/newlib/libc/ctype/isalnum.c index d926f97b7..3ddf0d2e1 100644 --- a/newlib/libc/ctype/isalnum.c +++ b/newlib/libc/ctype/isalnum.c @@ -46,5 +46,5 @@ No OS subroutines are required. int isalnum (int c) { - return(__CTYPE_PTR[c+1] & (_U|_L|_N)); + return(__CTYPE_PTR[c+1] & (_ISupper|_ISlower|_ISdigit)); } diff --git a/newlib/libc/ctype/isalnum_l.c b/newlib/libc/ctype/isalnum_l.c index dcb7e3652..e3587f1b2 100644 --- a/newlib/libc/ctype/isalnum_l.c +++ b/newlib/libc/ctype/isalnum_l.c @@ -6,5 +6,5 @@ int isalnum_l (int c, struct __locale_t *locale) { - return __locale_ctype_ptr_l (locale)[c+1] & (_U|_L|_N); + return __locale_ctype_ptr_l (locale)[c+1] & (_ISupper|_ISlower|_ISdigit); } diff --git a/newlib/libc/ctype/isalpha.c b/newlib/libc/ctype/isalpha.c index 8b8e78a29..c8de62cea 100644 --- a/newlib/libc/ctype/isalpha.c +++ b/newlib/libc/ctype/isalpha.c @@ -45,5 +45,5 @@ No supporting OS subroutines are required. int isalpha (int c) { - return(__CTYPE_PTR[c+1] & (_U|_L)); + return(__CTYPE_PTR[c+1] & (_ISupper|_ISlower)); } diff --git a/newlib/libc/ctype/isalpha_l.c b/newlib/libc/ctype/isalpha_l.c index dcae3ccb4..6ff1e3b68 100644 --- a/newlib/libc/ctype/isalpha_l.c +++ b/newlib/libc/ctype/isalpha_l.c @@ -6,5 +6,5 @@ int isalpha_l (int c, struct __locale_t *locale) { - return __locale_ctype_ptr_l (locale)[c+1] & (_U|_L); + return __locale_ctype_ptr_l (locale)[c+1] & (_ISupper|_ISlower); } diff --git a/newlib/libc/ctype/isblank.c b/newlib/libc/ctype/isblank.c index 0ebc2192c..2fa29f33f 100644 --- a/newlib/libc/ctype/isblank.c +++ b/newlib/libc/ctype/isblank.c @@ -44,5 +44,5 @@ No supporting OS subroutines are required. int isblank (int c) { - return ((__CTYPE_PTR[c+1] & _B) || (c == '\t')); + return ((__CTYPE_PTR[c+1] & _ISblank) || (c == '\t')); } diff --git a/newlib/libc/ctype/isblank_l.c b/newlib/libc/ctype/isblank_l.c index 8bbb84e1f..6aff2f7fc 100644 --- a/newlib/libc/ctype/isblank_l.c +++ b/newlib/libc/ctype/isblank_l.c @@ -6,5 +6,5 @@ int isblank_l (int c, struct __locale_t *locale) { - return (__locale_ctype_ptr_l (locale)[c+1] & _B) || (c == '\t'); + return (__locale_ctype_ptr_l (locale)[c+1] & _ISblank) || (c == '\t'); } diff --git a/newlib/libc/ctype/iscntrl.c b/newlib/libc/ctype/iscntrl.c index ebbdd7371..bd99ebafb 100644 --- a/newlib/libc/ctype/iscntrl.c +++ b/newlib/libc/ctype/iscntrl.c @@ -48,5 +48,5 @@ No supporting OS subroutines are required. int iscntrl (int c) { - return(__CTYPE_PTR[c+1] & _C); + return(__CTYPE_PTR[c+1] & _IScntrl); } diff --git a/newlib/libc/ctype/iscntrl_l.c b/newlib/libc/ctype/iscntrl_l.c index 0ae17c7f7..85f4d6900 100644 --- a/newlib/libc/ctype/iscntrl_l.c +++ b/newlib/libc/ctype/iscntrl_l.c @@ -6,5 +6,5 @@ int iscntrl_l (int c, struct __locale_t *locale) { - return __locale_ctype_ptr_l (locale)[c+1] & _C; + return __locale_ctype_ptr_l (locale)[c+1] & _IScntrl; } diff --git a/newlib/libc/ctype/isdigit.c b/newlib/libc/ctype/isdigit.c index a5c511964..911781df3 100644 --- a/newlib/libc/ctype/isdigit.c +++ b/newlib/libc/ctype/isdigit.c @@ -47,5 +47,5 @@ No supporting OS subroutines are required. int isdigit (int c) { - return(__CTYPE_PTR[c+1] & _N); + return(__CTYPE_PTR[c+1] & _ISdigit); } diff --git a/newlib/libc/ctype/isdigit_l.c b/newlib/libc/ctype/isdigit_l.c index 1fb79e000..6e24c100c 100644 --- a/newlib/libc/ctype/isdigit_l.c +++ b/newlib/libc/ctype/isdigit_l.c @@ -6,5 +6,5 @@ int isdigit_l (int c, struct __locale_t *locale) { - return __locale_ctype_ptr_l (locale)[c+1] & _N; + return __locale_ctype_ptr_l (locale)[c+1] & _ISdigit; } diff --git a/newlib/libc/ctype/islower.c b/newlib/libc/ctype/islower.c index 2b3440489..c45c6c8ad 100644 --- a/newlib/libc/ctype/islower.c +++ b/newlib/libc/ctype/islower.c @@ -45,5 +45,5 @@ No supporting OS subroutines are required. int islower (int c) { - return ((__CTYPE_PTR[c+1] & (_U|_L)) == _L); + return ((__CTYPE_PTR[c+1] & (_ISupper|_ISlower)) == _ISlower); } diff --git a/newlib/libc/ctype/islower_l.c b/newlib/libc/ctype/islower_l.c index d1f3a82d8..1c66ab48b 100644 --- a/newlib/libc/ctype/islower_l.c +++ b/newlib/libc/ctype/islower_l.c @@ -6,5 +6,5 @@ int islower_l (int c, struct __locale_t *locale) { - return (__locale_ctype_ptr_l (locale)[c+1] & (_U|_L)) == _L; + return (__locale_ctype_ptr_l (locale)[c+1] & (_ISupper|_ISlower)) == _ISlower; } diff --git a/newlib/libc/ctype/isprint.c b/newlib/libc/ctype/isprint.c index e34fbe28a..7206047fb 100644 --- a/newlib/libc/ctype/isprint.c +++ b/newlib/libc/ctype/isprint.c @@ -59,7 +59,7 @@ No supporting OS subroutines are required. int isgraph (int c) { - return(__CTYPE_PTR[c+1] & (_P|_U|_L|_N)); + return(__CTYPE_PTR[c+1] & (_ISpunct|_ISupper|_ISlower|_ISdigit)); } @@ -67,5 +67,5 @@ isgraph (int c) int isprint (int c) { - return(__CTYPE_PTR[c+1] & (_P|_U|_L|_N|_B)); + return(__CTYPE_PTR[c+1] & (_ISpunct|_ISupper|_ISlower|_ISdigit|_ISblank)); } diff --git a/newlib/libc/ctype/isprint_l.c b/newlib/libc/ctype/isprint_l.c index 535504f14..3efaa2f90 100644 --- a/newlib/libc/ctype/isprint_l.c +++ b/newlib/libc/ctype/isprint_l.c @@ -6,7 +6,7 @@ int isgraph_l (int c, struct __locale_t *locale) { - return __locale_ctype_ptr_l (locale)[c+1] & (_P|_U|_L|_N); + return __locale_ctype_ptr_l (locale)[c+1] & (_ISpunct|_ISupper|_ISlower|_ISdigit); } #undef isprint_l @@ -14,5 +14,5 @@ isgraph_l (int c, struct __locale_t *locale) int isprint_l (int c, struct __locale_t *locale) { - return __locale_ctype_ptr_l (locale)[c+1] & (_P|_U|_L|_N|_B); + return __locale_ctype_ptr_l (locale)[c+1] & (_ISpunct|_ISupper|_ISlower|_ISdigit|_ISblank); } diff --git a/newlib/libc/ctype/ispunct.c b/newlib/libc/ctype/ispunct.c index 9c5a3fcca..35f7cc2d4 100644 --- a/newlib/libc/ctype/ispunct.c +++ b/newlib/libc/ctype/ispunct.c @@ -47,5 +47,5 @@ No supporting OS subroutines are required. int ispunct (int c) { - return(__CTYPE_PTR[c+1] & _P); + return(__CTYPE_PTR[c+1] & _ISpunct); } diff --git a/newlib/libc/ctype/ispunct_l.c b/newlib/libc/ctype/ispunct_l.c index eeba1f5ae..30c2b48d6 100644 --- a/newlib/libc/ctype/ispunct_l.c +++ b/newlib/libc/ctype/ispunct_l.c @@ -6,6 +6,6 @@ int ispunct_l (int c, struct __locale_t *locale) { - return __locale_ctype_ptr_l (locale)[c+1] & _P; + return __locale_ctype_ptr_l (locale)[c+1] & _ISpunct; } diff --git a/newlib/libc/ctype/isspace.c b/newlib/libc/ctype/isspace.c index 0def2c0ce..8834d1901 100644 --- a/newlib/libc/ctype/isspace.c +++ b/newlib/libc/ctype/isspace.c @@ -46,5 +46,5 @@ No supporting OS subroutines are required. int isspace (int c) { - return(__CTYPE_PTR[c+1] & _S); + return(__CTYPE_PTR[c+1] & _ISspace); } diff --git a/newlib/libc/ctype/isspace_l.c b/newlib/libc/ctype/isspace_l.c index bf4a36c3e..06227c87a 100644 --- a/newlib/libc/ctype/isspace_l.c +++ b/newlib/libc/ctype/isspace_l.c @@ -6,6 +6,6 @@ int isspace_l (int c, struct __locale_t *locale) { - return __locale_ctype_ptr_l (locale)[c+1] & _S; + return __locale_ctype_ptr_l (locale)[c+1] & _ISspace; } diff --git a/newlib/libc/ctype/isupper.c b/newlib/libc/ctype/isupper.c index aeed383ec..7d916d9f3 100644 --- a/newlib/libc/ctype/isupper.c +++ b/newlib/libc/ctype/isupper.c @@ -43,5 +43,5 @@ No supporting OS subroutines are required. int isupper (int c) { - return ((__CTYPE_PTR[c+1] & (_U|_L)) == _U); + return ((__CTYPE_PTR[c+1] & (_ISupper|_ISlower)) == _ISupper); } diff --git a/newlib/libc/ctype/isupper_l.c b/newlib/libc/ctype/isupper_l.c index eb473a7a1..1fdcf1072 100644 --- a/newlib/libc/ctype/isupper_l.c +++ b/newlib/libc/ctype/isupper_l.c @@ -6,6 +6,6 @@ int isupper_l (int c, struct __locale_t *locale) { - return (__locale_ctype_ptr_l (locale)[c+1] & (_U|_L)) == _U; + return (__locale_ctype_ptr_l (locale)[c+1] & (_ISupper|_ISlower)) == _ISupper; } diff --git a/newlib/libc/ctype/isxdigit.c b/newlib/libc/ctype/isxdigit.c index 2bfe18dbf..fb2a59ea8 100644 --- a/newlib/libc/ctype/isxdigit.c +++ b/newlib/libc/ctype/isxdigit.c @@ -46,5 +46,5 @@ No supporting OS subroutines are required. int isxdigit (int c) { - return(__CTYPE_PTR[c+1] & ((_X)|(_N))); + return(__CTYPE_PTR[c+1] & ((_ISxdigit)|(_ISdigit))); } diff --git a/newlib/libc/ctype/isxdigit_l.c b/newlib/libc/ctype/isxdigit_l.c index 726db3190..bbae410c6 100644 --- a/newlib/libc/ctype/isxdigit_l.c +++ b/newlib/libc/ctype/isxdigit_l.c @@ -6,6 +6,6 @@ int isxdigit_l (int c, struct __locale_t *locale) { - return __locale_ctype_ptr_l (locale)[c+1] & ((_X)|(_N)); + return __locale_ctype_ptr_l (locale)[c+1] & ((_ISxdigit)|(_ISdigit)); } diff --git a/newlib/libc/include/ctype.h b/newlib/libc/include/ctype.h index 932a567e2..366b35dc9 100644 --- a/newlib/libc/include/ctype.h +++ b/newlib/libc/include/ctype.h @@ -57,14 +57,17 @@ extern int isascii_l (int __c, locale_t __l); extern int toascii_l (int __c, locale_t __l); #endif -#define _U 01 -#define _L 02 -#define _N 04 -#define _S 010 -#define _P 020 -#define _C 040 -#define _X 0100 -#define _B 0200 +enum +{ + _ISupper = 01, + _ISlower = 02, + _ISdigit = 04, + _ISspace = 010, + _ISpunct = 020, + _IScntrl = 040, + _ISxdigit = 0100, + _ISblank = 0200, +}; /* For C++ backward-compatibility only. */ extern __IMPORT const char _ctype_[]; @@ -89,22 +92,22 @@ const char *__locale_ctype_ptr (void); an out-of-bounds reference on a 64-bit machine. */ #define __ctype_lookup(__c) ((__CTYPE_PTR+sizeof(""[__c]))[(int)(__c)]) -#define isalpha(__c) (__ctype_lookup(__c)&(_U|_L)) -#define isupper(__c) ((__ctype_lookup(__c)&(_U|_L))==_U) -#define islower(__c) ((__ctype_lookup(__c)&(_U|_L))==_L) -#define isdigit(__c) (__ctype_lookup(__c)&_N) -#define isxdigit(__c) (__ctype_lookup(__c)&(_X|_N)) -#define isspace(__c) (__ctype_lookup(__c)&_S) -#define ispunct(__c) (__ctype_lookup(__c)&_P) -#define isalnum(__c) (__ctype_lookup(__c)&(_U|_L|_N)) -#define isprint(__c) (__ctype_lookup(__c)&(_P|_U|_L|_N|_B)) -#define isgraph(__c) (__ctype_lookup(__c)&(_P|_U|_L|_N)) -#define iscntrl(__c) (__ctype_lookup(__c)&_C) +#define isalpha(__c) (__ctype_lookup(__c) & (_ISupper|_ISlower)) +#define isupper(__c) ((__ctype_lookup(__c) & (_ISupper|_ISlower)) == _ISupper) +#define islower(__c) ((__ctype_lookup(__c) & (_ISupper|_ISlower)) == _ISlower) +#define isdigit(__c) (__ctype_lookup(__c) & _ISdigit) +#define isxdigit(__c) (__ctype_lookup(__c) & (_ISxdigit|_ISdigit)) +#define isspace(__c) (__ctype_lookup(__c) & _ISspace) +#define ispunct(__c) (__ctype_lookup(__c) & _ISpunct) +#define isalnum(__c) (__ctype_lookup(__c) & (_ISupper|_ISlower|_ISdigit)) +#define isprint(__c) (__ctype_lookup(__c) & (_ISpunct|_ISupper|_ISlower|_ISdigit|_ISblank)) +#define isgraph(__c) (__ctype_lookup(__c) & (_ISpunct|_ISupper|_ISlower|_ISdigit)) +#define iscntrl(__c) (__ctype_lookup(__c) & _IScntrl) #if defined(__GNUC__) && __ISO_C_VISIBLE >= 1999 #define isblank(__c) \ __extension__ ({ __typeof__ (__c) __x = (__c); \ - (__ctype_lookup(__x)&_B) || (int) (__x) == '\t';}) + (__ctype_lookup(__x)&_ISblank) || (int) (__x) == '\t';}) #endif #if __POSIX_VISIBLE >= 200809 @@ -120,22 +123,22 @@ __locale_ctype_ptr_l(locale_t _l) #endif #define __ctype_lookup_l(__c,__l) ((__locale_ctype_ptr_l(__l)+sizeof(""[__c]))[(int)(__c)]) -#define isalpha_l(__c,__l) (__ctype_lookup_l(__c,__l)&(_U|_L)) -#define isupper_l(__c,__l) ((__ctype_lookup_l(__c,__l)&(_U|_L))==_U) -#define islower_l(__c,__l) ((__ctype_lookup_l(__c,__l)&(_U|_L))==_L) -#define isdigit_l(__c,__l) (__ctype_lookup_l(__c,__l)&_N) -#define isxdigit_l(__c,__l) (__ctype_lookup_l(__c,__l)&(_X|_N)) -#define isspace_l(__c,__l) (__ctype_lookup_l(__c,__l)&_S) -#define ispunct_l(__c,__l) (__ctype_lookup_l(__c,__l)&_P) -#define isalnum_l(__c,__l) (__ctype_lookup_l(__c,__l)&(_U|_L|_N)) -#define isprint_l(__c,__l) (__ctype_lookup_l(__c,__l)&(_P|_U|_L|_N|_B)) -#define isgraph_l(__c,__l) (__ctype_lookup_l(__c,__l)&(_P|_U|_L|_N)) -#define iscntrl_l(__c,__l) (__ctype_lookup_l(__c,__l)&_C) +#define isalpha_l(__c,__l) (__ctype_lookup_l(__c,__l) & (_ISupper|_ISlower)) +#define isupper_l(__c,__l) ((__ctype_lookup_l(__c,__l) & (_ISupper|_ISlower)) == _ISupper) +#define islower_l(__c,__l) ((__ctype_lookup_l(__c,__l) & (_ISupper|_ISlower)) == _ISlower) +#define isdigit_l(__c,__l) (__ctype_lookup_l(__c,__l) & _ISdigit) +#define isxdigit_l(__c,__l) (__ctype_lookup_l(__c,__l) & (_ISxdigit|_ISdigit)) +#define isspace_l(__c,__l) (__ctype_lookup_l(__c,__l) & _ISspace) +#define ispunct_l(__c,__l) (__ctype_lookup_l(__c,__l) & _ISpunct) +#define isalnum_l(__c,__l) (__ctype_lookup_l(__c,__l) & (_ISupper|_ISlower|_ISdigit)) +#define isprint_l(__c,__l) (__ctype_lookup_l(__c,__l) & (_ISpunct|_ISupper|_ISlower|_ISdigit|_ISblank)) +#define isgraph_l(__c,__l) (__ctype_lookup_l(__c,__l) & (_ISpunct|_ISupper|_ISlower|_ISdigit)) +#define iscntrl_l(__c,__l) (__ctype_lookup_l(__c,__l) & _IScntrl) #if defined(__GNUC__) #define isblank_l(__c, __l) \ __extension__ ({ __typeof__ (__c) __x = (__c); \ - (__ctype_lookup_l(__x,__l)&_B) || (int) (__x) == '\t';}) + (__ctype_lookup_l(__x,__l)&_ISblank) || (int) (__x) == '\t';}) #endif #endif /* __POSIX_VISIBLE >= 200809 */