Skip to content
Snippets Groups Projects
Commit 47cfcc3a authored by Joel Brobecker's avatar Joel Brobecker Committed by Joel Brobecker
Browse files

safe-ctype.h: Remove #error when detecting that ctype.h has been included.

        * safe-ctype.h: Remove #error when detecting that ctype.h has been
        included. Redefine the various macros provided by ctype.h as
        undefined variables.

From-SVN: r137480
parent 99805865
No related branches found
No related tags found
No related merge requests found
2008-07-04 Joel Brobecker <brobecker@adacore.com>
* safe-ctype.h: Remove #error when detecting that ctype.h has been
included. Redefine the various macros provided by ctype.h as
undefined variables.
2008-06-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2008-06-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* libiberty.h (XALLOCA, XDUP, XALLOCAVEC, XDUPVEC, XALLOCAVAR, * libiberty.h (XALLOCA, XDUP, XALLOCAVEC, XDUPVEC, XALLOCAVAR,
......
...@@ -35,10 +35,6 @@ Boston, MA 02110-1301, USA. */ ...@@ -35,10 +35,6 @@ Boston, MA 02110-1301, USA. */
#ifndef SAFE_CTYPE_H #ifndef SAFE_CTYPE_H
#define SAFE_CTYPE_H #define SAFE_CTYPE_H
#ifdef isalpha
#error "safe-ctype.h and ctype.h may not be used simultaneously"
#endif
/* Determine host character set. */ /* Determine host character set. */
#define HOST_CHARSET_UNKNOWN 0 #define HOST_CHARSET_UNKNOWN 0
#define HOST_CHARSET_ASCII 1 #define HOST_CHARSET_ASCII 1
...@@ -116,4 +112,36 @@ extern const unsigned char _sch_tolower[256]; ...@@ -116,4 +112,36 @@ extern const unsigned char _sch_tolower[256];
#define TOUPPER(c) _sch_toupper[(c) & 0xff] #define TOUPPER(c) _sch_toupper[(c) & 0xff]
#define TOLOWER(c) _sch_tolower[(c) & 0xff] #define TOLOWER(c) _sch_tolower[(c) & 0xff]
/* Prevent the users of safe-ctype.h from accidently using the routines
from ctype.h. Initially, the approach was to produce an error when
detecting that ctype.h has been included. But this was causing
trouble as ctype.h might get indirectly included as a result of
including another system header (for instance gnulib's stdint.h). */
#undef isalpha
#define isalpha(c) do_not_use_isalpha_with_safe_ctype
#undef isalnum
#define isalnum(c) do_not_use_isalnum_with_safe_ctype
#undef iscntrl
#define iscntrl(c) do_not_use_iscntrl_with_safe_ctype
#undef isdigit
#define isdigit(c) do_not_use_isdigit_with_safe_ctype
#undef isgraph
#define isgraph(c) do_not_use_isgraph_with_safe_ctype
#undef islower
#define islower(c) do_not_use_islower_with_safe_ctype
#undef isprint
#define isprint(c) do_not_use_isprint_with_safe_ctype
#undef ispunct
#define ispunct(c) do_not_use_ispunct_with_safe_ctype
#undef isspace
#define isspace(c) do_not_use_isspace_with_safe_ctype
#undef isupper
#define isupper(c) do_not_use_isupper_with_safe_ctype
#undef isxdigit
#define isxdigit(c) do_not_use_isxdigit_with_safe_ctype
#undef toupper
#define toupper(c) do_not_use_toupper_with_safe_ctype
#undef tolower
#define tolower(c) do_not_use_tolower_with_safe_ctype
#endif /* SAFE_CTYPE_H */ #endif /* SAFE_CTYPE_H */
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment