ctype.h revision 9720d5f59b9c1f5d1b9ecbc9173dbcb71bd557be
16f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/*
26f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Copyright (c) 1999
36f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Boris Fomitchev
46f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
56f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * This material is provided "as is", with absolutely no warranty expressed
66f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * or implied. Any use is at your own risk.
76f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
86f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Permission to use or copy this software for any purpose is hereby granted
96f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * without fee, provided the above notices are retained on all copies.
106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Permission to modify the code and to distribute modified code is granted,
116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * provided the above notices are retained, and a notice that the code was
126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * modified is included with the above copyright notice.
136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#ifndef _STLP_CTYPE_H
176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/* Workaround for a "misbehaviour" when compiling resource scripts using
196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * eMbedded Visual C++. The standard .rc file includes windows header files,
206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * which in turn include ctype.h, which results in warnings and errors
216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#if !defined(RC_INVOKED)
236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#  if !defined (_STLP_OUTERMOST_HEADER_ID)
256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#    define _STLP_OUTERMOST_HEADER_ID 0x219
266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#    include <stl/_prolog.h>
276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#  elif (_STLP_OUTERMOST_HEADER_ID == 0x219)
286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#    define _STLP_DONT_POP_HEADER_ID
296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#    define _STLP_CTYPE_H
306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#  endif
316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#  if defined(_STLP_WCE_EVC3)
336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgstruct _exception;
346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#  endif
356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#  include _STLP_NATIVE_C_HEADER(ctype.h)
376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/* on evc4 including ctype.h also defines setjmp macro */
396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#  if defined (_STLP_WCE)
406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#    define _STLP_NATIVE_SETJMP_H_INCLUDED
416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#  endif
426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#  ifndef _STLP_CTYPE_H_SEEN
446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#    define _STLP_CTYPE_H_SEEN
456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/* Undef convenience interfaces */
476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#    undef isspace
486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#    undef isprint
496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#    undef iscntrl
506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#    undef isupper
516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#    undef islower
526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#    undef isalpha
536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#    undef isdigit
546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#    undef ispunct
556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#    undef isxdigit
566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#    undef isalnum
576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#    undef isgraph
586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#    undef toupper
596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#    undef tolower
606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#    if defined (UNDER_CE)
626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#      if (_WIN32_WCE < 300)     /* Only wide chars for older versions */
646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#        define _isctype iswctype
656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#      endif
666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org__inline int (isalpha)(int c) { return _isctype(c, _ALPHA); }
686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org__inline int (isupper)(int c) { return _isctype(c, _UPPER); }
696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org__inline int (islower)(int c) { return _isctype(c, _LOWER); }
706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org__inline int (isdigit)(int c) { return _isctype(c, _DIGIT); }
716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org__inline int (isxdigit)(int c) { return _isctype(c, _HEX); }
726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org__inline int (isspace)(int c) { return _isctype(c, _SPACE); }
736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org__inline int (ispunct)(int c) { return _isctype(c, _PUNCT); }
746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org__inline int (isalnum)(int c) { return _isctype(c, _ALPHA|_DIGIT); }
756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org__inline int (isprint)(int c) { return _isctype(c, _BLANK|_PUNCT|_ALPHA|_DIGIT); }
766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org__inline int (isgraph)(int c) { return _isctype(c, _PUNCT|_ALPHA|_DIGIT); }
776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org__inline int (iscntrl)(int c) { return _isctype(c, _CONTROL); }
786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org__inline int (isascii)(int c) { return ((unsigned)(c) < 0x80); }
796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#      undef _isctype
816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org__inline int (iswalpha)(int c) { return iswctype(c, _ALPHA); }
836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org__inline int (iswupper)(int c) { return iswctype(c, _UPPER); }
846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org__inline int (iswlower)(int c) { return iswctype(c, _LOWER); }
856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org__inline int (iswdigit)(int c) { return iswctype(c, _DIGIT); }
866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org__inline int (iswxdigit)(int c) { return iswctype(c, _HEX); }
876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org__inline int (iswspace)(int c) { return iswctype(c, _SPACE); }
886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org__inline int (iswpunct)(int c) { return iswctype(c, _PUNCT); }
896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org__inline int (iswalnum)(int c) { return iswctype(c, _ALPHA|_DIGIT); }
906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org__inline int (iswprint)(int c) { return iswctype(c, _BLANK|_PUNCT|_ALPHA|_DIGIT); }
916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org__inline int (iswgraph)(int c) { return iswctype(c, _PUNCT|_ALPHA|_DIGIT); }
926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org__inline int (iswcntrl)(int c) { return iswctype(c, _CONTROL); }
936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org__inline int (iswascii)(int c) { return ((unsigned)(c) < 0x80); }
946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#    endif /* UNDER_CE */
966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#  endif /* _STLP_CTYPE_H_SEEN */
986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#  if (_STLP_OUTERMOST_HEADER_ID == 0x219)
1006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#    if ! defined (_STLP_DONT_POP_HEADER_ID)
1016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#      include <stl/_epilog.h>
1026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#      undef  _STLP_OUTERMOST_HEADER_ID
1036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#    else
1046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#      undef  _STLP_DONT_POP_HEADER_ID
1056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#    endif
1066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#  endif
1076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
1086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#endif /* RC_INVOKED */
1096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
1106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#endif /* _STLP_CTYPE_H */
1116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org