// cctype standard header
#pragma once
#ifndef _CCTYPE_
#define _CCTYPE_
#include <yvals.h>

#ifdef _STD_USING
 #undef _STD_USING
  #include <ctype.h>
 #define _STD_USING

#else /* _STD_USING */
 #include <ctype.h>

#ifndef RC_INVOKED
#if defined(_WIN32_WCE)
/* WinCE has these #defined instead of inline functions
   We need to overwrite that to put them in the std namespace */

#ifdef isalnum
#undef isalnum
#endif

inline int isalnum(int _C)
    { return _isctype(_C,_ALPHA|_DIGIT); }

#ifdef isalpha
#undef isalpha
#endif
inline int isalpha(int _C)
    { return _isctype(_C,_ALPHA); }


#ifdef iscntrl
#undef iscntrl
#endif
inline int iscntrl(int _C)
    { return _isctype(_C,_CONTROL); }

#ifdef isdigit
#undef isdigit
#endif
inline int isdigit(int _C)
        { return _isctype(_C,_DIGIT); }

#ifdef isgraph
#undef isgraph
#endif
inline int isgraph(int _C)
        { return _isctype(_C,_PUNCT|_ALPHA|_DIGIT); }

#ifdef islower
#undef islower
#endif
inline int islower(int _C)
        { return _isctype(_C,_LOWER); }

#ifdef isprint
#undef isprint
#endif
inline int isprint(int _C)
        { return _isctype(_C,_BLANK|_PUNCT|_ALPHA|_DIGIT); }

#ifdef ispunct
#undef ispunct
#endif
inline int ispunct(int _C)
        { return _isctype(_C,_PUNCT); }

#ifdef isspace
#undef isspace
#endif
inline int isspace(int _C)
        { return _isctype(_C,_SPACE); }

#ifdef isupper
#undef isupper
#endif
inline int isupper(int _C)
        { return _isctype(_C,_UPPER); }

#ifdef isxdigit
#undef isxdigit
#endif
inline int isxdigit(int _C)
        { return _isctype(_C,_HEX); }

#endif // defined(_WIN32_WCE)

 #if _GLOBAL_USING
_STD_BEGIN
using ::isalnum; using ::isalpha; using ::iscntrl;
using ::isdigit; using ::isgraph; using ::islower;
using ::isprint; using ::ispunct; using ::isspace;
using ::isupper; using ::isxdigit; using ::tolower;
using ::toupper;
_STD_END
 #endif /* _GLOBAL_USING */
#endif /* RC_INVOKED */

#endif /* _STD_USING */

	/* remove any (improper) macro overrides */
#undef isalnum
#undef isalpha
#undef isblank
#undef iscntrl
#undef isdigit
#undef isgraph
#undef islower
#undef isprint
#undef ispunct
#undef isspace
#undef isupper
#undef isxdigit
#undef tolower
#undef toupper
#endif /* _CCTYPE_ */

/*
 * Copyright (c) 1992-2005 by P.J. Plauger.  ALL RIGHTS RESERVED.
 * Consult your license regarding permissions and restrictions.
 V4.05:0009 */
