19720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block/* 29720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * Copyright (c) 1999 39720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * Boris Fomitchev 49720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * 59720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * This material is provided "as is", with absolutely no warranty expressed 69720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * or implied. Any use is at your own risk. 79720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * 89720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * Permission to use or copy this software for any purpose is hereby granted 99720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * without fee, provided the above notices are retained on all copies. 109720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * Permission to modify the code and to distribute modified code is granted, 119720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * provided the above notices are retained, and a notice that the code was 129720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * modified is included with the above copyright notice. 139720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * 149720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block */ 159720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 169720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#ifndef _STLP_CTYPE_H 179720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 189720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block/* Workaround for a "misbehaviour" when compiling resource scripts using 199720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * eMbedded Visual C++. The standard .rc file includes windows header files, 209720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * which in turn include ctype.h, which results in warnings and errors 219720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block */ 229720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#if !defined(RC_INVOKED) 239720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 249720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# if !defined (_STLP_OUTERMOST_HEADER_ID) 259720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# define _STLP_OUTERMOST_HEADER_ID 0x219 269720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# include <stl/_prolog.h> 279720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# elif (_STLP_OUTERMOST_HEADER_ID == 0x219) 289720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# define _STLP_DONT_POP_HEADER_ID 299720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# define _STLP_CTYPE_H 309720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# endif 319720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 329720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# if defined(_STLP_WCE_EVC3) 339720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockstruct _exception; 349720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# endif 359720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 36e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# if defined (_STLP_HAS_INCLUDE_NEXT) 37e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# include_next <ctype.h> 38e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# else 39e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# include _STLP_NATIVE_C_HEADER(ctype.h) 40e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# endif 419720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 429720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block/* on evc4 including ctype.h also defines setjmp macro */ 439720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# if defined (_STLP_WCE) 449720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# define _STLP_NATIVE_SETJMP_H_INCLUDED 459720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# endif 469720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 479720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# ifndef _STLP_CTYPE_H_SEEN 489720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# define _STLP_CTYPE_H_SEEN 499720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 509720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block/* Undef convenience interfaces */ 519720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# undef isspace 529720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# undef isprint 539720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# undef iscntrl 549720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# undef isupper 559720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# undef islower 569720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# undef isalpha 579720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# undef isdigit 589720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# undef ispunct 599720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# undef isxdigit 609720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# undef isalnum 619720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# undef isgraph 629720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# undef toupper 639720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# undef tolower 649720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 659720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# if defined (UNDER_CE) 669720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 679720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# if (_WIN32_WCE < 300) /* Only wide chars for older versions */ 689720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# define _isctype iswctype 699720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# endif 709720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 719720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block__inline int (isalpha)(int c) { return _isctype(c, _ALPHA); } 729720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block__inline int (isupper)(int c) { return _isctype(c, _UPPER); } 739720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block__inline int (islower)(int c) { return _isctype(c, _LOWER); } 749720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block__inline int (isdigit)(int c) { return _isctype(c, _DIGIT); } 759720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block__inline int (isxdigit)(int c) { return _isctype(c, _HEX); } 769720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block__inline int (isspace)(int c) { return _isctype(c, _SPACE); } 779720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block__inline int (ispunct)(int c) { return _isctype(c, _PUNCT); } 789720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block__inline int (isalnum)(int c) { return _isctype(c, _ALPHA|_DIGIT); } 799720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block__inline int (isprint)(int c) { return _isctype(c, _BLANK|_PUNCT|_ALPHA|_DIGIT); } 809720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block__inline int (isgraph)(int c) { return _isctype(c, _PUNCT|_ALPHA|_DIGIT); } 819720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block__inline int (iscntrl)(int c) { return _isctype(c, _CONTROL); } 829720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block__inline int (isascii)(int c) { return ((unsigned)(c) < 0x80); } 839720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 849720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# undef _isctype 859720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 86e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott__inline int (iswalpha)(int c) { return iswctype((unsigned short)(c), _ALPHA); } 87e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott__inline int (iswupper)(int c) { return iswctype((unsigned short)(c), _UPPER); } 88e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott__inline int (iswlower)(int c) { return iswctype((unsigned short)(c), _LOWER); } 89e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott__inline int (iswdigit)(int c) { return iswctype((unsigned short)(c), _DIGIT); } 90e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott__inline int (iswxdigit)(int c) { return iswctype((unsigned short)(c), _HEX); } 91e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott__inline int (iswspace)(int c) { return iswctype((unsigned short)(c), _SPACE); } 92e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott__inline int (iswpunct)(int c) { return iswctype((unsigned short)(c), _PUNCT); } 93e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott__inline int (iswalnum)(int c) { return iswctype((unsigned short)(c), _ALPHA|_DIGIT); } 94e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott__inline int (iswprint)(int c) { return iswctype((unsigned short)(c), _BLANK|_PUNCT|_ALPHA|_DIGIT); } 95e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott__inline int (iswgraph)(int c) { return iswctype((unsigned short)(c), _PUNCT|_ALPHA|_DIGIT); } 96e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott__inline int (iswcntrl)(int c) { return iswctype((unsigned short)(c), _CONTROL); } 979720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block__inline int (iswascii)(int c) { return ((unsigned)(c) < 0x80); } 989720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 999720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# endif /* UNDER_CE */ 1009720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 1019720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# endif /* _STLP_CTYPE_H_SEEN */ 1029720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 1039720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# if (_STLP_OUTERMOST_HEADER_ID == 0x219) 1049720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# if ! defined (_STLP_DONT_POP_HEADER_ID) 1059720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# include <stl/_epilog.h> 1069720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# undef _STLP_OUTERMOST_HEADER_ID 1079720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# else 1089720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# undef _STLP_DONT_POP_HEADER_ID 1099720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# endif 1109720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# endif 1119720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 1129720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#endif /* RC_INVOKED */ 1139720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 1149720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#endif /* _STLP_CTYPE_H */ 115