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