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) 33struct _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__inline int (iswalpha)(int c) { return iswctype((unsigned short)(c), _ALPHA); } 87__inline int (iswupper)(int c) { return iswctype((unsigned short)(c), _UPPER); } 88__inline int (iswlower)(int c) { return iswctype((unsigned short)(c), _LOWER); } 89__inline int (iswdigit)(int c) { return iswctype((unsigned short)(c), _DIGIT); } 90__inline int (iswxdigit)(int c) { return iswctype((unsigned short)(c), _HEX); } 91__inline int (iswspace)(int c) { return iswctype((unsigned short)(c), _SPACE); } 92__inline int (iswpunct)(int c) { return iswctype((unsigned short)(c), _PUNCT); } 93__inline int (iswalnum)(int c) { return iswctype((unsigned short)(c), _ALPHA|_DIGIT); } 94__inline int (iswprint)(int c) { return iswctype((unsigned short)(c), _BLANK|_PUNCT|_ALPHA|_DIGIT); } 95__inline int (iswgraph)(int c) { return iswctype((unsigned short)(c), _PUNCT|_ALPHA|_DIGIT); } 96__inline int (iswcntrl)(int c) { return iswctype((unsigned short)(c), _CONTROL); } 97__inline int (iswascii)(int c) { return ((unsigned)(c) < 0x80); } 98 99# endif /* UNDER_CE */ 100 101# endif /* _STLP_CTYPE_H_SEEN */ 102 103# if (_STLP_OUTERMOST_HEADER_ID == 0x219) 104# if ! defined (_STLP_DONT_POP_HEADER_ID) 105# include <stl/_epilog.h> 106# undef _STLP_OUTERMOST_HEADER_ID 107# else 108# undef _STLP_DONT_POP_HEADER_ID 109# endif 110# endif 111 112#endif /* RC_INVOKED */ 113 114#endif /* _STLP_CTYPE_H */ 115