#ifndef __WCTYPE_LOADED #define __WCTYPE_LOADED /**************************************************************************** ** ** - Wide Character classification and mapping utilities ** ***************************************************************************** ** ** Header introduced by Amendment 1 of the ISO C Standard ** ** Definitions in this header file may not be available on all versions of ** OpenVMS. See the DEC C Runtime Library reference manual for specifics. ** ***************************************************************************** ** ** Copyright 2000 Compaq Computer Corporation ** ** Compaq and the Compaq logo Registered in U.S. Patent and Trademark Office. ** ** Confidential computer software. Valid license from Compaq required for ** possession, use or copying. Consistent with FAR 12.211 and 12.212, ** Commercial Computer Software, Computer Software Documentation, and ** Technical Data for Commercial Items are licensed to the U.S. Government ** under vendor's standard commercial license. ** ****************************************************************************** */ #pragma __nostandard #include #ifdef __cplusplus extern "C" { #endif /* ** All includes of other header files must be done prior to altering the ** pointer size mode. */ #include /* ** If the user has used /pointer_size=short or /pointer_size=long, we will ** begin in a 32-bit pointer size context. */ #if __INITIAL_POINTER_SIZE # pragma __pointer_size __save # pragma __pointer_size 64 #endif /* ** Define typedefs only once per compilation */ #ifndef __WINT_T # define __WINT_T typedef __wint_t wint_t; #endif #ifndef __WCTRANS_T # define __WCTRANS_T typedef __wctrans_t wctrans_t; #endif #ifndef __WCTYPE_T # define __WCTYPE_T typedef __wctype_t wctype_t; #endif #ifndef WEOF # define WEOF ((__wint_t) -1) #endif /* ** According to XPG4, the following functions are defined in the ** header. Although the header doesn't exist in XPG4, we put these ** prototypes under "No strict XPG4" condition for the sake of a user, which ** includes both and (in header these ** declarations are placed under "strict XPG4 mode" condition). Also prevent ** macro expansion of isw* prototypes in cases where both and ** are included. */ #if (!defined _XOPEN_SOURCE || defined __HIDE_FORBIDDEN_NAMES) int (iswalnum) (__wint_t __wc); int (iswalpha) (__wint_t __wc); int (iswcntrl) (__wint_t __wc); int (iswdigit) (__wint_t __wc); int (iswgraph) (__wint_t __wc); int (iswlower) (__wint_t __wc); int (iswprint) (__wint_t __wc); int (iswpunct) (__wint_t __wc); int (iswspace) (__wint_t __wc); int (iswupper) (__wint_t __wc); int (iswxdigit) (__wint_t __wc); __wctype_t wctype (const char *__property); int iswctype (__wint_t __wc, __wctype_t __desc); __wint_t towlower (__wint_t __wc); __wint_t towupper (__wint_t __wc); # define __ISWALPHABET (iswalpha) # define __ISWCNTRL (iswcntrl) # define __ISWUPPER (iswupper) # define __ISWLOWER (iswlower) # define __ISWDIGIT (iswdigit) # define __ISWSPACE (iswspace) # define __ISWPUNCT (iswpunct) # define __ISWXDIGIT (iswxdigit) # define __ISWPRINT (iswprint) # define __ISWGRAPH (iswgraph) # define __ISWALNUM (iswalnum) # define __ISWFUNCTION(c,p) (__ctypea?__ctypet[(__wint_t)(c)]&__##p:__ISW##p(c)) # define iswcntrl(c) __ISWFUNCTION(c, CNTRL) # define iswalnum(c) __ISWFUNCTION(c, ALNUM) # define iswalpha(c) __ISWFUNCTION(c, ALPHABET) # define iswdigit(c) __ISWFUNCTION(c, DIGIT) # define iswgraph(c) __ISWFUNCTION(c, GRAPH) # define iswlower(c) __ISWFUNCTION(c, LOWER) # define iswprint(c) __ISWFUNCTION(c, PRINT) # define iswpunct(c) __ISWFUNCTION(c, PUNCT) # define iswspace(c) __ISWFUNCTION(c, SPACE) # define iswxdigit(c) __ISWFUNCTION(c, XDIGIT) # define iswupper(c) __ISWFUNCTION(c, UPPER) #endif __wctrans_t wctrans (const char *__property); __wint_t towctrans (__wint_t __wc, __wctrans_t __desc); /* ** Restore the users pointer context */ #if __INITIAL_POINTER_SIZE # pragma __pointer_size __restore #endif #ifdef __cplusplus } #endif #pragma __standard #endif /* __WCTYPE_LOADED */