| 1 |
/* |
| 2 |
* Copyright (c) 1999 |
| 3 |
* Boris Fomitchev |
| 4 |
* |
| 5 |
* This material is provided "as is", with absolutely no warranty expressed |
| 6 |
* or implied. Any use is at your own risk. |
| 7 |
* |
| 8 |
* Permission to use or copy this software for any purpose is hereby granted |
| 9 |
* without fee, provided the above notices are retained on all copies. |
| 10 |
* Permission to modify the code and to distribute modified code is granted, |
| 11 |
* provided the above notices are retained, and a notice that the code was |
| 12 |
* modified is included with the above copyright notice. |
| 13 |
* |
| 14 |
*/ |
| 15 |
|
| 16 |
#ifndef _STLP_CTYPE_H |
| 17 |
|
| 18 |
/* Workaround for a "misbehaviour" when compiling resource scripts using |
| 19 |
* eMbedded Visual C++. The standard .rc file includes windows header files, |
| 20 |
* which in turn include ctype.h, which results in warnings and errors |
| 21 |
*/ |
| 22 |
#if !defined(RC_INVOKED) |
| 23 |
|
| 24 |
# if !defined (_STLP_OUTERMOST_HEADER_ID) |
| 25 |
# define _STLP_OUTERMOST_HEADER_ID 0x219 |
| 26 |
# include <stl/_prolog.h> |
| 27 |
# elif (_STLP_OUTERMOST_HEADER_ID == 0x219) |
| 28 |
# define _STLP_DONT_POP_HEADER_ID |
| 29 |
# define _STLP_CTYPE_H |
| 30 |
# endif |
| 31 |
|
| 32 |
# if defined(_STLP_WCE_EVC3) |
| 33 |
struct _exception; |
| 34 |
# endif |
| 35 |
|
| 36 |
# if defined (_STLP_HAS_INCLUDE_NEXT) |
| 37 |
# include_next <ctype.h> |
| 38 |
# else |
| 39 |
# include _STLP_NATIVE_C_HEADER(ctype.h) |
| 40 |
# endif |
| 41 |
|
| 42 |
/* on evc4 including ctype.h also defines setjmp macro */ |
| 43 |
# if defined (_STLP_WCE) |
| 44 |
# define _STLP_NATIVE_SETJMP_H_INCLUDED |
| 45 |
# endif |
| 46 |
|
| 47 |
# ifndef _STLP_CTYPE_H_SEEN |
| 48 |
# define _STLP_CTYPE_H_SEEN |
| 49 |
|
| 50 |
/* Undef convenience interfaces */ |
| 51 |
# undef isspace |
| 52 |
# undef isprint |
| 53 |
# undef iscntrl |
| 54 |
# undef isupper |
| 55 |
# undef islower |
| 56 |
# undef isalpha |
| 57 |
# undef isdigit |
| 58 |
# undef ispunct |
| 59 |
# undef isxdigit |
| 60 |
# undef isalnum |
| 61 |
# undef isgraph |
| 62 |
# undef toupper |
| 63 |
# undef tolower |
| 64 |
|
| 65 |
# if defined (UNDER_CE) |
| 66 |
|
| 67 |
# if (_WIN32_WCE < 300) /* Only wide chars for older versions */ |
| 68 |
# define _isctype iswctype |
| 69 |
# endif |
| 70 |
|
| 71 |
__inline int (isalpha)(int c) { return _isctype(c, _ALPHA); } |
| 72 |
__inline int (isupper)(int c) { return _isctype(c, _UPPER); } |
| 73 |
__inline int (islower)(int c) { return _isctype(c, _LOWER); } |
| 74 |
__inline int (isdigit)(int c) { return _isctype(c, _DIGIT); } |
| 75 |
__inline int (isxdigit)(int c) { return _isctype(c, _HEX); } |
| 76 |
__inline int (isspace)(int c) { return _isctype(c, _SPACE); } |
| 77 |
__inline int (ispunct)(int c) { return _isctype(c, _PUNCT); } |
| 78 |
__inline int (isalnum)(int c) { return _isctype(c, _ALPHA|_DIGIT); } |
| 79 |
__inline int (isprint)(int c) { return _isctype(c, _BLANK|_PUNCT|_ALPHA|_DIGIT); } |
| 80 |
__inline int (isgraph)(int c) { return _isctype(c, _PUNCT|_ALPHA|_DIGIT); } |
| 81 |
__inline int (iscntrl)(int c) { return _isctype(c, _CONTROL); } |
| 82 |
__inline int (isascii)(int c) { return ((unsigned)(c) < 0x80); } |
| 83 |
|
| 84 |
# undef _isctype |
| 85 |
|
| 86 |
# endif /* UNDER_CE */ |
| 87 |
|
| 88 |
# endif /* _STLP_CTYPE_H_SEEN */ |
| 89 |
|
| 90 |
# if (_STLP_OUTERMOST_HEADER_ID == 0x219) |
| 91 |
# if ! defined (_STLP_DONT_POP_HEADER_ID) |
| 92 |
# include <stl/_epilog.h> |
| 93 |
# undef _STLP_OUTERMOST_HEADER_ID |
| 94 |
# else |
| 95 |
# undef _STLP_DONT_POP_HEADER_ID |
| 96 |
# endif |
| 97 |
# endif |
| 98 |
|
| 99 |
#endif /* RC_INVOKED */ |
| 100 |
|
| 101 |
#endif /* _STLP_CTYPE_H */ |