From dbc7d28ba9bee25fec59734695b31f70c6ecf2ff Mon Sep 17 00:00:00 2001 From: Corinna Vinschen Date: Thu, 2 Dec 2021 11:21:14 +0100 Subject: [PATCH] Revert "ctype: use less short names in public header" This patch fixed a problem which isn't in newlib, but in projects incorrectly using symbols from the reserved namespace. This reverts commit 3ba1bd0d9dbc015c14a0aaafcef042f706d1249a. --- newlib/libc/ctype/ctype_.h | 10 ----- newlib/libc/ctype/isalnum.c | 2 +- newlib/libc/ctype/isalnum_l.c | 2 +- newlib/libc/ctype/isalpha.c | 2 +- newlib/libc/ctype/isalpha_l.c | 2 +- newlib/libc/ctype/isblank.c | 2 +- newlib/libc/ctype/isblank_l.c | 2 +- newlib/libc/ctype/iscntrl.c | 2 +- newlib/libc/ctype/iscntrl_l.c | 2 +- newlib/libc/ctype/isdigit.c | 2 +- newlib/libc/ctype/isdigit_l.c | 2 +- newlib/libc/ctype/islower.c | 2 +- newlib/libc/ctype/islower_l.c | 2 +- newlib/libc/ctype/isprint.c | 4 +- newlib/libc/ctype/isprint_l.c | 4 +- newlib/libc/ctype/ispunct.c | 2 +- newlib/libc/ctype/ispunct_l.c | 2 +- newlib/libc/ctype/isspace.c | 2 +- newlib/libc/ctype/isspace_l.c | 2 +- newlib/libc/ctype/isupper.c | 2 +- newlib/libc/ctype/isupper_l.c | 2 +- newlib/libc/ctype/isxdigit.c | 2 +- newlib/libc/ctype/isxdigit_l.c | 2 +- newlib/libc/include/ctype.h | 67 ++++++++++++++++------------------ 24 files changed, 56 insertions(+), 69 deletions(-) diff --git a/newlib/libc/ctype/ctype_.h b/newlib/libc/ctype/ctype_.h index 42ad2c870..a73870b3e 100644 --- a/newlib/libc/ctype/ctype_.h +++ b/newlib/libc/ctype/ctype_.h @@ -1,15 +1,5 @@ #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 3ddf0d2e1..d926f97b7 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] & (_ISupper|_ISlower|_ISdigit)); + return(__CTYPE_PTR[c+1] & (_U|_L|_N)); } diff --git a/newlib/libc/ctype/isalnum_l.c b/newlib/libc/ctype/isalnum_l.c index e3587f1b2..dcb7e3652 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] & (_ISupper|_ISlower|_ISdigit); + return __locale_ctype_ptr_l (locale)[c+1] & (_U|_L|_N); } diff --git a/newlib/libc/ctype/isalpha.c b/newlib/libc/ctype/isalpha.c index c8de62cea..8b8e78a29 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] & (_ISupper|_ISlower)); + return(__CTYPE_PTR[c+1] & (_U|_L)); } diff --git a/newlib/libc/ctype/isalpha_l.c b/newlib/libc/ctype/isalpha_l.c index 6ff1e3b68..dcae3ccb4 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] & (_ISupper|_ISlower); + return __locale_ctype_ptr_l (locale)[c+1] & (_U|_L); } diff --git a/newlib/libc/ctype/isblank.c b/newlib/libc/ctype/isblank.c index 2fa29f33f..0ebc2192c 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] & _ISblank) || (c == '\t')); + return ((__CTYPE_PTR[c+1] & _B) || (c == '\t')); } diff --git a/newlib/libc/ctype/isblank_l.c b/newlib/libc/ctype/isblank_l.c index 6aff2f7fc..8bbb84e1f 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] & _ISblank) || (c == '\t'); + return (__locale_ctype_ptr_l (locale)[c+1] & _B) || (c == '\t'); } diff --git a/newlib/libc/ctype/iscntrl.c b/newlib/libc/ctype/iscntrl.c index bd99ebafb..ebbdd7371 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] & _IScntrl); + return(__CTYPE_PTR[c+1] & _C); } diff --git a/newlib/libc/ctype/iscntrl_l.c b/newlib/libc/ctype/iscntrl_l.c index 85f4d6900..0ae17c7f7 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] & _IScntrl; + return __locale_ctype_ptr_l (locale)[c+1] & _C; } diff --git a/newlib/libc/ctype/isdigit.c b/newlib/libc/ctype/isdigit.c index 911781df3..a5c511964 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] & _ISdigit); + return(__CTYPE_PTR[c+1] & _N); } diff --git a/newlib/libc/ctype/isdigit_l.c b/newlib/libc/ctype/isdigit_l.c index 6e24c100c..1fb79e000 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] & _ISdigit; + return __locale_ctype_ptr_l (locale)[c+1] & _N; } diff --git a/newlib/libc/ctype/islower.c b/newlib/libc/ctype/islower.c index c45c6c8ad..2b3440489 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] & (_ISupper|_ISlower)) == _ISlower); + return ((__CTYPE_PTR[c+1] & (_U|_L)) == _L); } diff --git a/newlib/libc/ctype/islower_l.c b/newlib/libc/ctype/islower_l.c index 1c66ab48b..d1f3a82d8 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] & (_ISupper|_ISlower)) == _ISlower; + return (__locale_ctype_ptr_l (locale)[c+1] & (_U|_L)) == _L; } diff --git a/newlib/libc/ctype/isprint.c b/newlib/libc/ctype/isprint.c index 7206047fb..e34fbe28a 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] & (_ISpunct|_ISupper|_ISlower|_ISdigit)); + return(__CTYPE_PTR[c+1] & (_P|_U|_L|_N)); } @@ -67,5 +67,5 @@ isgraph (int c) int isprint (int c) { - return(__CTYPE_PTR[c+1] & (_ISpunct|_ISupper|_ISlower|_ISdigit|_ISblank)); + return(__CTYPE_PTR[c+1] & (_P|_U|_L|_N|_B)); } diff --git a/newlib/libc/ctype/isprint_l.c b/newlib/libc/ctype/isprint_l.c index 3efaa2f90..535504f14 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] & (_ISpunct|_ISupper|_ISlower|_ISdigit); + return __locale_ctype_ptr_l (locale)[c+1] & (_P|_U|_L|_N); } #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] & (_ISpunct|_ISupper|_ISlower|_ISdigit|_ISblank); + return __locale_ctype_ptr_l (locale)[c+1] & (_P|_U|_L|_N|_B); } diff --git a/newlib/libc/ctype/ispunct.c b/newlib/libc/ctype/ispunct.c index 35f7cc2d4..9c5a3fcca 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] & _ISpunct); + return(__CTYPE_PTR[c+1] & _P); } diff --git a/newlib/libc/ctype/ispunct_l.c b/newlib/libc/ctype/ispunct_l.c index 30c2b48d6..eeba1f5ae 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] & _ISpunct; + return __locale_ctype_ptr_l (locale)[c+1] & _P; } diff --git a/newlib/libc/ctype/isspace.c b/newlib/libc/ctype/isspace.c index 8834d1901..0def2c0ce 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] & _ISspace); + return(__CTYPE_PTR[c+1] & _S); } diff --git a/newlib/libc/ctype/isspace_l.c b/newlib/libc/ctype/isspace_l.c index 06227c87a..bf4a36c3e 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] & _ISspace; + return __locale_ctype_ptr_l (locale)[c+1] & _S; } diff --git a/newlib/libc/ctype/isupper.c b/newlib/libc/ctype/isupper.c index 7d916d9f3..aeed383ec 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] & (_ISupper|_ISlower)) == _ISupper); + return ((__CTYPE_PTR[c+1] & (_U|_L)) == _U); } diff --git a/newlib/libc/ctype/isupper_l.c b/newlib/libc/ctype/isupper_l.c index 1fdcf1072..eb473a7a1 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] & (_ISupper|_ISlower)) == _ISupper; + return (__locale_ctype_ptr_l (locale)[c+1] & (_U|_L)) == _U; } diff --git a/newlib/libc/ctype/isxdigit.c b/newlib/libc/ctype/isxdigit.c index fb2a59ea8..2bfe18dbf 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] & ((_ISxdigit)|(_ISdigit))); + return(__CTYPE_PTR[c+1] & ((_X)|(_N))); } diff --git a/newlib/libc/ctype/isxdigit_l.c b/newlib/libc/ctype/isxdigit_l.c index bbae410c6..726db3190 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] & ((_ISxdigit)|(_ISdigit)); + return __locale_ctype_ptr_l (locale)[c+1] & ((_X)|(_N)); } diff --git a/newlib/libc/include/ctype.h b/newlib/libc/include/ctype.h index 65ab24bf0..b29594a45 100644 --- a/newlib/libc/include/ctype.h +++ b/newlib/libc/include/ctype.h @@ -57,17 +57,14 @@ extern int isascii_l (int __c, locale_t __l); extern int toascii_l (int __c, locale_t __l); #endif -enum -{ - _ISupper = 01, - _ISlower = 02, - _ISdigit = 04, - _ISspace = 010, - _ISpunct = 020, - _IScntrl = 040, - _ISxdigit = 0100, - _ISblank = 0200, -}; +#define _U 01 +#define _L 02 +#define _N 04 +#define _S 010 +#define _P 020 +#define _C 040 +#define _X 0100 +#define _B 0200 /* For C++ backward-compatibility only. */ extern __IMPORT const char _ctype_[]; @@ -92,22 +89,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) & (_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) +#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) #if defined(__GNUC__) && __ISO_C_VISIBLE >= 1999 #define isblank(__c) \ __extension__ ({ __typeof__ (__c) __x = (__c); \ - (__ctype_lookup(__x)&_ISblank) || (int) (__x) == '\t';}) + (__ctype_lookup(__x)&_B) || (int) (__x) == '\t';}) #endif #if __POSIX_VISIBLE >= 200809 @@ -123,22 +120,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) & (_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) +#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) #if defined(__GNUC__) #define isblank_l(__c, __l) \ __extension__ ({ __typeof__ (__c) __x = (__c); \ - (__ctype_lookup_l(__x,__l)&_ISblank) || (int) (__x) == '\t';}) + (__ctype_lookup_l(__x,__l)&_B) || (int) (__x) == '\t';}) #endif #endif /* __POSIX_VISIBLE >= 200809 */ -- 2.43.5