Home | History | Annotate | Download | only in include
      1 // -*- C++ -*-
      2 //===--------------------------- cwctype ----------------------------------===//
      3 //
      4 //                     The LLVM Compiler Infrastructure
      5 //
      6 // This file is dual licensed under the MIT and the University of Illinois Open
      7 // Source Licenses. See LICENSE.TXT for details.
      8 //
      9 //===----------------------------------------------------------------------===//
     10 
     11 #ifndef _LIBCPP_CWCTYPE
     12 #define _LIBCPP_CWCTYPE
     13 
     14 /*
     15     cwctype synopsis
     16 
     17 Macros:
     18 
     19     WEOF
     20 
     21 namespace std
     22 {
     23 
     24 Types:
     25 
     26     wint_t
     27     wctrans_t
     28     wctype_t
     29 
     30 int iswalnum(wint_t wc);
     31 int iswalpha(wint_t wc);
     32 int iswblank(wint_t wc);  // C99
     33 int iswcntrl(wint_t wc);
     34 int iswdigit(wint_t wc);
     35 int iswgraph(wint_t wc);
     36 int iswlower(wint_t wc);
     37 int iswprint(wint_t wc);
     38 int iswpunct(wint_t wc);
     39 int iswspace(wint_t wc);
     40 int iswupper(wint_t wc);
     41 int iswxdigit(wint_t wc);
     42 int iswctype(wint_t wc, wctype_t desc);
     43 wctype_t wctype(const char* property);
     44 wint_t towlower(wint_t wc);
     45 wint_t towupper(wint_t wc);
     46 wint_t towctrans(wint_t wc, wctrans_t desc);
     47 wctrans_t wctrans(const char* property);
     48 
     49 }  // std
     50 
     51 */
     52 
     53 #include <__config>
     54 #include <cctype>
     55 #include <wctype.h>
     56 
     57 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
     58 #pragma GCC system_header
     59 #endif
     60 
     61 _LIBCPP_BEGIN_NAMESPACE_STD
     62 
     63 using ::wint_t;
     64 using ::wctrans_t;
     65 using ::wctype_t;
     66 
     67 #ifdef iswalnum
     68 inline _LIBCPP_INLINE_VISIBILITY int __libcpp_iswalnum(wint_t __wc) {return iswalnum(__wc);}
     69 #undef iswalnum
     70 inline _LIBCPP_INLINE_VISIBILITY int iswalnum(wint_t __wc) {return __libcpp_iswalnum(__wc);}
     71 #else  // iswalnum
     72 using ::iswalnum;
     73 #endif
     74 
     75 #ifdef iswalpha
     76 inline _LIBCPP_INLINE_VISIBILITY int __libcpp_iswalpha(wint_t __wc) {return iswalpha(__wc);}
     77 #undef iswalpha
     78 inline _LIBCPP_INLINE_VISIBILITY int iswalpha(wint_t __wc) {return __libcpp_iswalpha(__wc);}
     79 #else  // iswalpha
     80 using ::iswalpha;
     81 #endif
     82 
     83 #ifdef iswblank
     84 inline _LIBCPP_INLINE_VISIBILITY int __libcpp_iswblank(wint_t __wc) {return iswblank(__wc);}
     85 #undef iswblank
     86 inline _LIBCPP_INLINE_VISIBILITY int iswblank(wint_t __wc) {return __libcpp_iswblank(__wc);}
     87 #else  // iswblank
     88 using ::iswblank;
     89 #endif
     90 
     91 #ifdef iswcntrl
     92 inline _LIBCPP_INLINE_VISIBILITY int __libcpp_iswcntrl(wint_t __wc) {return iswcntrl(__wc);}
     93 #undef iswcntrl
     94 inline _LIBCPP_INLINE_VISIBILITY int iswcntrl(wint_t __wc) {return __libcpp_iswcntrl(__wc);}
     95 #else  // iswcntrl
     96 using ::iswcntrl;
     97 #endif
     98 
     99 #ifdef iswdigit
    100 inline _LIBCPP_INLINE_VISIBILITY int __libcpp_iswdigit(wint_t __wc) {return iswdigit(__wc);}
    101 #undef iswdigit
    102 inline _LIBCPP_INLINE_VISIBILITY int iswdigit(wint_t __wc) {return __libcpp_iswdigit(__wc);}
    103 #else  // iswdigit
    104 using ::iswdigit;
    105 #endif
    106 
    107 #ifdef iswgraph
    108 inline _LIBCPP_INLINE_VISIBILITY int __libcpp_iswgraph(wint_t __wc) {return iswgraph(__wc);}
    109 #undef iswgraph
    110 inline _LIBCPP_INLINE_VISIBILITY int iswgraph(wint_t __wc) {return __libcpp_iswgraph(__wc);}
    111 #else  // iswgraph
    112 using ::iswgraph;
    113 #endif
    114 
    115 #ifdef iswlower
    116 inline _LIBCPP_INLINE_VISIBILITY int __libcpp_iswlower(wint_t __wc) {return iswlower(__wc);}
    117 #undef iswlower
    118 inline _LIBCPP_INLINE_VISIBILITY int iswlower(wint_t __wc) {return __libcpp_iswlower(__wc);}
    119 #else  // iswlower
    120 using ::iswlower;
    121 #endif
    122 
    123 #ifdef iswprint
    124 inline _LIBCPP_INLINE_VISIBILITY int __libcpp_iswprint(wint_t __wc) {return iswprint(__wc);}
    125 #undef iswprint
    126 inline _LIBCPP_INLINE_VISIBILITY int iswprint(wint_t __wc) {return __libcpp_iswprint(__wc);}
    127 #else  // iswprint
    128 using ::iswprint;
    129 #endif
    130 
    131 #ifdef iswpunct
    132 inline _LIBCPP_INLINE_VISIBILITY int __libcpp_iswpunct(wint_t __wc) {return iswpunct(__wc);}
    133 #undef iswpunct
    134 inline _LIBCPP_INLINE_VISIBILITY int iswpunct(wint_t __wc) {return __libcpp_iswpunct(__wc);}
    135 #else  // iswpunct
    136 using ::iswpunct;
    137 #endif
    138 
    139 #ifdef iswspace
    140 inline _LIBCPP_INLINE_VISIBILITY int __libcpp_iswspace(wint_t __wc) {return iswspace(__wc);}
    141 #undef iswspace
    142 inline _LIBCPP_INLINE_VISIBILITY int iswspace(wint_t __wc) {return __libcpp_iswspace(__wc);}
    143 #else  // iswspace
    144 using ::iswspace;
    145 #endif
    146 
    147 #ifdef iswupper
    148 inline _LIBCPP_INLINE_VISIBILITY int __libcpp_iswupper(wint_t __wc) {return iswupper(__wc);}
    149 #undef iswupper
    150 inline _LIBCPP_INLINE_VISIBILITY int iswupper(wint_t __wc) {return __libcpp_iswupper(__wc);}
    151 #else  // iswupper
    152 using ::iswupper;
    153 #endif
    154 
    155 #ifdef iswxdigit
    156 inline _LIBCPP_INLINE_VISIBILITY int __libcpp_iswxdigit(wint_t __wc) {return iswxdigit(__wc);}
    157 #undef iswxdigit
    158 inline _LIBCPP_INLINE_VISIBILITY int iswxdigit(wint_t __wc) {return __libcpp_iswxdigit(__wc);}
    159 #else  // iswxdigit
    160 using ::iswxdigit;
    161 #endif
    162 
    163 #ifdef iswctype
    164 inline _LIBCPP_INLINE_VISIBILITY int __libcpp_iswctype(wint_t __w, wctype_t __d) {return iswctype(__w, __d);}
    165 #undef iswctype
    166 inline _LIBCPP_INLINE_VISIBILITY int iswctype(wint_t __w, wctype_t __d) {return __libcpp_iswctype(__w, __d);}
    167 #else  // iswctype
    168 using ::iswctype;
    169 #endif
    170 
    171 #ifdef wctype
    172 inline _LIBCPP_INLINE_VISIBILITY wctype_t __libcpp_wctype(const char* __p) {return wctype(__p);}
    173 #undef wctype
    174 inline _LIBCPP_INLINE_VISIBILITY wctype_t wctype(const char* __p) {return __libcpp_wctype(__p);}
    175 #else  // wctype
    176 using ::wctype;
    177 #endif
    178 
    179 #ifdef towlower
    180 inline _LIBCPP_INLINE_VISIBILITY wint_t __libcpp_towlower(wint_t __wc) {return towlower(__wc);}
    181 #undef towlower
    182 inline _LIBCPP_INLINE_VISIBILITY wint_t towlower(wint_t __wc) {return __libcpp_towlower(__wc);}
    183 #else  // towlower
    184 using ::towlower;
    185 #endif
    186 
    187 #ifdef towupper
    188 inline _LIBCPP_INLINE_VISIBILITY wint_t __libcpp_towupper(wint_t __wc) {return towupper(__wc);}
    189 #undef towupper
    190 inline _LIBCPP_INLINE_VISIBILITY wint_t towupper(wint_t __wc) {return __libcpp_towupper(__wc);}
    191 #else  // towupper
    192 using ::towupper;
    193 #endif
    194 
    195 #ifdef towctrans
    196 inline _LIBCPP_INLINE_VISIBILITY wint_t __libcpp_towctrans(wint_t __wc, wctype_t __d) {return towctrans(__wc, __d);}
    197 #undef towctrans
    198 inline _LIBCPP_INLINE_VISIBILITY wint_t towctrans(wint_t __wc, wctype_t __d) {return __libcpp_towctrans(__wc, __d);}
    199 #else  // towctrans
    200 using ::towctrans;
    201 #endif
    202 
    203 #ifdef wctrans
    204 inline _LIBCPP_INLINE_VISIBILITY wctrans_t __libcpp_wctrans(const char* __p) {return wctrans(__p);}
    205 #undef wctrans
    206 inline _LIBCPP_INLINE_VISIBILITY wctrans_t wctrans(const char* __p) {return __libcpp_wctrans(__p);}
    207 #else  // wctrans
    208 using ::wctrans;
    209 #endif
    210 
    211 _LIBCPP_END_NAMESPACE_STD
    212 
    213 #endif  // _LIBCPP_CWCTYPE
    214