1951a39d68df598db08dfced8b4707755864a0492Ying Wang/* 2951a39d68df598db08dfced8b4707755864a0492Ying Wang * Copyright (c) 1999 3951a39d68df598db08dfced8b4707755864a0492Ying Wang * Boris Fomitchev 4951a39d68df598db08dfced8b4707755864a0492Ying Wang * 5951a39d68df598db08dfced8b4707755864a0492Ying Wang * This material is provided "as is", with absolutely no warranty expressed 6951a39d68df598db08dfced8b4707755864a0492Ying Wang * or implied. Any use is at your own risk. 7951a39d68df598db08dfced8b4707755864a0492Ying Wang * 8951a39d68df598db08dfced8b4707755864a0492Ying Wang * Permission to use or copy this software for any purpose is hereby granted 9951a39d68df598db08dfced8b4707755864a0492Ying Wang * without fee, provided the above notices are retained on all copies. 10951a39d68df598db08dfced8b4707755864a0492Ying Wang * Permission to modify the code and to distribute modified code is granted, 11951a39d68df598db08dfced8b4707755864a0492Ying Wang * provided the above notices are retained, and a notice that the code was 12951a39d68df598db08dfced8b4707755864a0492Ying Wang * modified is included with the above copyright notice. 13951a39d68df598db08dfced8b4707755864a0492Ying Wang * 14951a39d68df598db08dfced8b4707755864a0492Ying Wang */ 15951a39d68df598db08dfced8b4707755864a0492Ying Wang 16951a39d68df598db08dfced8b4707755864a0492Ying Wang#ifndef _STLP_CTYPE_H 17951a39d68df598db08dfced8b4707755864a0492Ying Wang 18951a39d68df598db08dfced8b4707755864a0492Ying Wang/* Workaround for a "misbehaviour" when compiling resource scripts using 19951a39d68df598db08dfced8b4707755864a0492Ying Wang * eMbedded Visual C++. The standard .rc file includes windows header files, 20951a39d68df598db08dfced8b4707755864a0492Ying Wang * which in turn include ctype.h, which results in warnings and errors 21951a39d68df598db08dfced8b4707755864a0492Ying Wang */ 22951a39d68df598db08dfced8b4707755864a0492Ying Wang#if !defined(RC_INVOKED) 23951a39d68df598db08dfced8b4707755864a0492Ying Wang 24951a39d68df598db08dfced8b4707755864a0492Ying Wang# if !defined (_STLP_OUTERMOST_HEADER_ID) 25951a39d68df598db08dfced8b4707755864a0492Ying Wang# define _STLP_OUTERMOST_HEADER_ID 0x219 26951a39d68df598db08dfced8b4707755864a0492Ying Wang# include <stl/_prolog.h> 27951a39d68df598db08dfced8b4707755864a0492Ying Wang# elif (_STLP_OUTERMOST_HEADER_ID == 0x219) 28951a39d68df598db08dfced8b4707755864a0492Ying Wang# define _STLP_DONT_POP_HEADER_ID 29951a39d68df598db08dfced8b4707755864a0492Ying Wang# define _STLP_CTYPE_H 30951a39d68df598db08dfced8b4707755864a0492Ying Wang# endif 31951a39d68df598db08dfced8b4707755864a0492Ying Wang 32951a39d68df598db08dfced8b4707755864a0492Ying Wang# if defined(_STLP_WCE_EVC3) 33951a39d68df598db08dfced8b4707755864a0492Ying Wangstruct _exception; 34951a39d68df598db08dfced8b4707755864a0492Ying Wang# endif 35951a39d68df598db08dfced8b4707755864a0492Ying Wang 36951a39d68df598db08dfced8b4707755864a0492Ying Wang# if defined (_STLP_HAS_INCLUDE_NEXT) 37951a39d68df598db08dfced8b4707755864a0492Ying Wang# include_next <ctype.h> 38951a39d68df598db08dfced8b4707755864a0492Ying Wang# else 39951a39d68df598db08dfced8b4707755864a0492Ying Wang# include _STLP_NATIVE_C_HEADER(ctype.h) 40951a39d68df598db08dfced8b4707755864a0492Ying Wang# endif 41951a39d68df598db08dfced8b4707755864a0492Ying Wang 42951a39d68df598db08dfced8b4707755864a0492Ying Wang/* on evc4 including ctype.h also defines setjmp macro */ 43951a39d68df598db08dfced8b4707755864a0492Ying Wang# if defined (_STLP_WCE) 44951a39d68df598db08dfced8b4707755864a0492Ying Wang# define _STLP_NATIVE_SETJMP_H_INCLUDED 45951a39d68df598db08dfced8b4707755864a0492Ying Wang# endif 46951a39d68df598db08dfced8b4707755864a0492Ying Wang 47951a39d68df598db08dfced8b4707755864a0492Ying Wang# ifndef _STLP_CTYPE_H_SEEN 48951a39d68df598db08dfced8b4707755864a0492Ying Wang# define _STLP_CTYPE_H_SEEN 49951a39d68df598db08dfced8b4707755864a0492Ying Wang 50951a39d68df598db08dfced8b4707755864a0492Ying Wang/* Undef convenience interfaces */ 51951a39d68df598db08dfced8b4707755864a0492Ying Wang# undef isspace 52951a39d68df598db08dfced8b4707755864a0492Ying Wang# undef isprint 53951a39d68df598db08dfced8b4707755864a0492Ying Wang# undef iscntrl 54951a39d68df598db08dfced8b4707755864a0492Ying Wang# undef isupper 55951a39d68df598db08dfced8b4707755864a0492Ying Wang# undef islower 56951a39d68df598db08dfced8b4707755864a0492Ying Wang# undef isalpha 57951a39d68df598db08dfced8b4707755864a0492Ying Wang# undef isdigit 58951a39d68df598db08dfced8b4707755864a0492Ying Wang# undef ispunct 59951a39d68df598db08dfced8b4707755864a0492Ying Wang# undef isxdigit 60951a39d68df598db08dfced8b4707755864a0492Ying Wang# undef isalnum 61951a39d68df598db08dfced8b4707755864a0492Ying Wang# undef isgraph 62951a39d68df598db08dfced8b4707755864a0492Ying Wang# undef toupper 63951a39d68df598db08dfced8b4707755864a0492Ying Wang# undef tolower 64951a39d68df598db08dfced8b4707755864a0492Ying Wang 65951a39d68df598db08dfced8b4707755864a0492Ying Wang# if defined (UNDER_CE) 66951a39d68df598db08dfced8b4707755864a0492Ying Wang 67951a39d68df598db08dfced8b4707755864a0492Ying Wang# if (_WIN32_WCE < 300) /* Only wide chars for older versions */ 68951a39d68df598db08dfced8b4707755864a0492Ying Wang# define _isctype iswctype 69951a39d68df598db08dfced8b4707755864a0492Ying Wang# endif 70951a39d68df598db08dfced8b4707755864a0492Ying Wang 71951a39d68df598db08dfced8b4707755864a0492Ying Wang__inline int (isalpha)(int c) { return _isctype(c, _ALPHA); } 72951a39d68df598db08dfced8b4707755864a0492Ying Wang__inline int (isupper)(int c) { return _isctype(c, _UPPER); } 73951a39d68df598db08dfced8b4707755864a0492Ying Wang__inline int (islower)(int c) { return _isctype(c, _LOWER); } 74951a39d68df598db08dfced8b4707755864a0492Ying Wang__inline int (isdigit)(int c) { return _isctype(c, _DIGIT); } 75951a39d68df598db08dfced8b4707755864a0492Ying Wang__inline int (isxdigit)(int c) { return _isctype(c, _HEX); } 76951a39d68df598db08dfced8b4707755864a0492Ying Wang__inline int (isspace)(int c) { return _isctype(c, _SPACE); } 77951a39d68df598db08dfced8b4707755864a0492Ying Wang__inline int (ispunct)(int c) { return _isctype(c, _PUNCT); } 78951a39d68df598db08dfced8b4707755864a0492Ying Wang__inline int (isalnum)(int c) { return _isctype(c, _ALPHA|_DIGIT); } 79951a39d68df598db08dfced8b4707755864a0492Ying Wang__inline int (isprint)(int c) { return _isctype(c, _BLANK|_PUNCT|_ALPHA|_DIGIT); } 80951a39d68df598db08dfced8b4707755864a0492Ying Wang__inline int (isgraph)(int c) { return _isctype(c, _PUNCT|_ALPHA|_DIGIT); } 81951a39d68df598db08dfced8b4707755864a0492Ying Wang__inline int (iscntrl)(int c) { return _isctype(c, _CONTROL); } 82951a39d68df598db08dfced8b4707755864a0492Ying Wang__inline int (isascii)(int c) { return ((unsigned)(c) < 0x80); } 83951a39d68df598db08dfced8b4707755864a0492Ying Wang 84951a39d68df598db08dfced8b4707755864a0492Ying Wang# undef _isctype 85951a39d68df598db08dfced8b4707755864a0492Ying Wang 86951a39d68df598db08dfced8b4707755864a0492Ying Wang__inline int (iswalpha)(int c) { return iswctype((unsigned short)(c), _ALPHA); } 87951a39d68df598db08dfced8b4707755864a0492Ying Wang__inline int (iswupper)(int c) { return iswctype((unsigned short)(c), _UPPER); } 88951a39d68df598db08dfced8b4707755864a0492Ying Wang__inline int (iswlower)(int c) { return iswctype((unsigned short)(c), _LOWER); } 89951a39d68df598db08dfced8b4707755864a0492Ying Wang__inline int (iswdigit)(int c) { return iswctype((unsigned short)(c), _DIGIT); } 90951a39d68df598db08dfced8b4707755864a0492Ying Wang__inline int (iswxdigit)(int c) { return iswctype((unsigned short)(c), _HEX); } 91951a39d68df598db08dfced8b4707755864a0492Ying Wang__inline int (iswspace)(int c) { return iswctype((unsigned short)(c), _SPACE); } 92951a39d68df598db08dfced8b4707755864a0492Ying Wang__inline int (iswpunct)(int c) { return iswctype((unsigned short)(c), _PUNCT); } 93951a39d68df598db08dfced8b4707755864a0492Ying Wang__inline int (iswalnum)(int c) { return iswctype((unsigned short)(c), _ALPHA|_DIGIT); } 94951a39d68df598db08dfced8b4707755864a0492Ying Wang__inline int (iswprint)(int c) { return iswctype((unsigned short)(c), _BLANK|_PUNCT|_ALPHA|_DIGIT); } 95951a39d68df598db08dfced8b4707755864a0492Ying Wang__inline int (iswgraph)(int c) { return iswctype((unsigned short)(c), _PUNCT|_ALPHA|_DIGIT); } 96951a39d68df598db08dfced8b4707755864a0492Ying Wang__inline int (iswcntrl)(int c) { return iswctype((unsigned short)(c), _CONTROL); } 97951a39d68df598db08dfced8b4707755864a0492Ying Wang__inline int (iswascii)(int c) { return ((unsigned)(c) < 0x80); } 98951a39d68df598db08dfced8b4707755864a0492Ying Wang 99951a39d68df598db08dfced8b4707755864a0492Ying Wang# endif /* UNDER_CE */ 100951a39d68df598db08dfced8b4707755864a0492Ying Wang 101951a39d68df598db08dfced8b4707755864a0492Ying Wang# endif /* _STLP_CTYPE_H_SEEN */ 102951a39d68df598db08dfced8b4707755864a0492Ying Wang 103951a39d68df598db08dfced8b4707755864a0492Ying Wang# if (_STLP_OUTERMOST_HEADER_ID == 0x219) 104951a39d68df598db08dfced8b4707755864a0492Ying Wang# if ! defined (_STLP_DONT_POP_HEADER_ID) 105951a39d68df598db08dfced8b4707755864a0492Ying Wang# include <stl/_epilog.h> 106951a39d68df598db08dfced8b4707755864a0492Ying Wang# undef _STLP_OUTERMOST_HEADER_ID 107951a39d68df598db08dfced8b4707755864a0492Ying Wang# else 108951a39d68df598db08dfced8b4707755864a0492Ying Wang# undef _STLP_DONT_POP_HEADER_ID 109951a39d68df598db08dfced8b4707755864a0492Ying Wang# endif 110951a39d68df598db08dfced8b4707755864a0492Ying Wang# endif 111951a39d68df598db08dfced8b4707755864a0492Ying Wang 112951a39d68df598db08dfced8b4707755864a0492Ying Wang#endif /* RC_INVOKED */ 113951a39d68df598db08dfced8b4707755864a0492Ying Wang 114951a39d68df598db08dfced8b4707755864a0492Ying Wang#endif /* _STLP_CTYPE_H */ 115