137f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh/* 237f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh * Copyright (c) 1999 337f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh * Boris Fomitchev 437f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh * 537f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh * This material is provided "as is", with absolutely no warranty expressed 637f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh * or implied. Any use is at your own risk. 737f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh * 837f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh * Permission to use or copy this software for any purpose is hereby granted 937f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh * without fee, provided the above notices are retained on all copies. 1037f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh * Permission to modify the code and to distribute modified code is granted, 1137f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh * provided the above notices are retained, and a notice that the code was 1237f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh * modified is included with the above copyright notice. 1337f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh * 1437f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh */ 1537f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh 1637f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh#ifndef _STLP_CTYPE_H 1737f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh 1837f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh/* Workaround for a "misbehaviour" when compiling resource scripts using 1937f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh * eMbedded Visual C++. The standard .rc file includes windows header files, 2037f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh * which in turn include ctype.h, which results in warnings and errors 2137f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh */ 2237f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh#if !defined(RC_INVOKED) 2337f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh 2437f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh# if !defined (_STLP_OUTERMOST_HEADER_ID) 2537f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh# define _STLP_OUTERMOST_HEADER_ID 0x219 2637f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh# include <stl/_prolog.h> 2737f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh# elif (_STLP_OUTERMOST_HEADER_ID == 0x219) 2837f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh# define _STLP_DONT_POP_HEADER_ID 2937f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh# define _STLP_CTYPE_H 3037f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh# endif 3137f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh 3237f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh# if defined(_STLP_WCE_EVC3) 3337f12739251d2637c9405c75951962b5e27bbceeAndrew Hsiehstruct _exception; 3437f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh# endif 3537f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh 3637f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh# if defined (_STLP_HAS_INCLUDE_NEXT) 3737f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh# include_next <ctype.h> 3837f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh# else 3937f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh# include _STLP_NATIVE_C_HEADER(ctype.h) 4037f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh# endif 4137f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh 4237f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh/* on evc4 including ctype.h also defines setjmp macro */ 4337f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh# if defined (_STLP_WCE) 4437f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh# define _STLP_NATIVE_SETJMP_H_INCLUDED 4537f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh# endif 4637f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh 4737f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh# ifndef _STLP_CTYPE_H_SEEN 4837f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh# define _STLP_CTYPE_H_SEEN 4937f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh 5037f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh/* Undef convenience interfaces */ 5137f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh# undef isspace 5237f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh# undef isprint 5337f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh# undef iscntrl 5437f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh# undef isupper 5537f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh# undef islower 5637f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh# undef isalpha 5737f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh# undef isdigit 5837f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh# undef ispunct 5937f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh# undef isxdigit 6037f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh# undef isalnum 6137f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh# undef isgraph 6237f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh# undef toupper 6337f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh# undef tolower 6437f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh 6537f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh# if defined (UNDER_CE) 6637f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh 6737f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh# if (_WIN32_WCE < 300) /* Only wide chars for older versions */ 6837f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh# define _isctype iswctype 6937f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh# endif 7037f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh 7137f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh__inline int (isalpha)(int c) { return _isctype(c, _ALPHA); } 7237f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh__inline int (isupper)(int c) { return _isctype(c, _UPPER); } 7337f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh__inline int (islower)(int c) { return _isctype(c, _LOWER); } 7437f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh__inline int (isdigit)(int c) { return _isctype(c, _DIGIT); } 7537f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh__inline int (isxdigit)(int c) { return _isctype(c, _HEX); } 7637f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh__inline int (isspace)(int c) { return _isctype(c, _SPACE); } 7737f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh__inline int (ispunct)(int c) { return _isctype(c, _PUNCT); } 7837f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh__inline int (isalnum)(int c) { return _isctype(c, _ALPHA|_DIGIT); } 7937f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh__inline int (isprint)(int c) { return _isctype(c, _BLANK|_PUNCT|_ALPHA|_DIGIT); } 8037f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh__inline int (isgraph)(int c) { return _isctype(c, _PUNCT|_ALPHA|_DIGIT); } 8137f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh__inline int (iscntrl)(int c) { return _isctype(c, _CONTROL); } 8237f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh__inline int (isascii)(int c) { return ((unsigned)(c) < 0x80); } 8337f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh 8437f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh# undef _isctype 8537f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh 8637f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh__inline int (iswalpha)(int c) { return iswctype((unsigned short)(c), _ALPHA); } 8737f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh__inline int (iswupper)(int c) { return iswctype((unsigned short)(c), _UPPER); } 8837f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh__inline int (iswlower)(int c) { return iswctype((unsigned short)(c), _LOWER); } 8937f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh__inline int (iswdigit)(int c) { return iswctype((unsigned short)(c), _DIGIT); } 9037f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh__inline int (iswxdigit)(int c) { return iswctype((unsigned short)(c), _HEX); } 9137f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh__inline int (iswspace)(int c) { return iswctype((unsigned short)(c), _SPACE); } 9237f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh__inline int (iswpunct)(int c) { return iswctype((unsigned short)(c), _PUNCT); } 9337f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh__inline int (iswalnum)(int c) { return iswctype((unsigned short)(c), _ALPHA|_DIGIT); } 9437f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh__inline int (iswprint)(int c) { return iswctype((unsigned short)(c), _BLANK|_PUNCT|_ALPHA|_DIGIT); } 9537f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh__inline int (iswgraph)(int c) { return iswctype((unsigned short)(c), _PUNCT|_ALPHA|_DIGIT); } 9637f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh__inline int (iswcntrl)(int c) { return iswctype((unsigned short)(c), _CONTROL); } 9737f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh__inline int (iswascii)(int c) { return ((unsigned)(c) < 0x80); } 9837f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh 9937f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh# endif /* UNDER_CE */ 10037f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh 10137f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh# endif /* _STLP_CTYPE_H_SEEN */ 10237f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh 10337f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh# if (_STLP_OUTERMOST_HEADER_ID == 0x219) 10437f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh# if ! defined (_STLP_DONT_POP_HEADER_ID) 10537f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh# include <stl/_epilog.h> 10637f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh# undef _STLP_OUTERMOST_HEADER_ID 10737f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh# else 10837f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh# undef _STLP_DONT_POP_HEADER_ID 10937f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh# endif 11037f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh# endif 11137f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh 11237f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh#endif /* RC_INVOKED */ 11337f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh 11437f12739251d2637c9405c75951962b5e27bbceeAndrew Hsieh#endif /* _STLP_CTYPE_H */ 115