1227825Stheraven// -*- C++ -*-
2227825Stheraven//===---------------------------- cctype ----------------------------------===//
3227825Stheraven//
4227825Stheraven//                     The LLVM Compiler Infrastructure
5227825Stheraven//
6227825Stheraven// This file is dual licensed under the MIT and the University of Illinois Open
7227825Stheraven// Source Licenses. See LICENSE.TXT for details.
8227825Stheraven//
9227825Stheraven//===----------------------------------------------------------------------===//
10227825Stheraven
11227825Stheraven#ifndef _LIBCPP_CCTYPE
12227825Stheraven#define _LIBCPP_CCTYPE
13227825Stheraven
14227825Stheraven/*
15227825Stheraven    cctype synopsis
16227825Stheraven
17227825Stheravennamespace std
18227825Stheraven{
19227825Stheraven
20227825Stheravenint isalnum(int c);
21227825Stheravenint isalpha(int c);
22227825Stheravenint isblank(int c);  // C99
23227825Stheravenint iscntrl(int c);
24227825Stheravenint isdigit(int c);
25227825Stheravenint isgraph(int c);
26227825Stheravenint islower(int c);
27227825Stheravenint isprint(int c);
28227825Stheravenint ispunct(int c);
29227825Stheravenint isspace(int c);
30227825Stheravenint isupper(int c);
31227825Stheravenint isxdigit(int c);
32227825Stheravenint tolower(int c);
33227825Stheravenint toupper(int c);
34227825Stheraven
35227825Stheraven}  // std
36227825Stheraven*/
37227825Stheraven
38227825Stheraven#include <__config>
39227825Stheraven#include <ctype.h>
40262801Sdim#if defined(_LIBCPP_MSVCRT)
41227825Stheraven#include "support/win32/support.h"
42262801Sdim#endif // _LIBCPP_MSVCRT
43227825Stheraven
44227825Stheraven#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
45227825Stheraven#pragma GCC system_header
46227825Stheraven#endif
47227825Stheraven
48227825Stheraven_LIBCPP_BEGIN_NAMESPACE_STD
49227825Stheraven
50227825Stheraven#ifdef isalnum
51227825Stheraveninline _LIBCPP_INLINE_VISIBILITY int __libcpp_isalnum(int __c) {return isalnum(__c);}
52227825Stheraven#undef isalnum
53227825Stheraveninline _LIBCPP_INLINE_VISIBILITY int isalnum(int __c) {return __libcpp_isalnum(__c);}
54227825Stheraven#else  // isalnum
55227825Stheravenusing ::isalnum;
56227825Stheraven#endif  // isalnum
57227825Stheraven
58227825Stheraven#ifdef isalpha
59227825Stheraveninline _LIBCPP_INLINE_VISIBILITY int __libcpp_isalpha(int __c) {return isalpha(__c);}
60227825Stheraven#undef isalpha
61227825Stheraveninline _LIBCPP_INLINE_VISIBILITY int isalpha(int __c) {return __libcpp_isalpha(__c);}
62227825Stheraven#else  // isalpha
63227825Stheravenusing ::isalpha;
64227825Stheraven#endif  // isalpha
65227825Stheraven
66227825Stheraven#ifdef isblank
67227825Stheraveninline _LIBCPP_INLINE_VISIBILITY int __libcpp_isblank(int __c) {return isblank(__c);}
68227825Stheraven#undef isblank
69227825Stheraveninline _LIBCPP_INLINE_VISIBILITY int isblank(int __c) {return __libcpp_isblank(__c);}
70227825Stheraven#else  // isblank
71227825Stheravenusing ::isblank;
72227825Stheraven#endif  // isblank
73227825Stheraven
74227825Stheraven#ifdef iscntrl
75227825Stheraveninline _LIBCPP_INLINE_VISIBILITY int __libcpp_iscntrl(int __c) {return iscntrl(__c);}
76227825Stheraven#undef iscntrl
77227825Stheraveninline _LIBCPP_INLINE_VISIBILITY int iscntrl(int __c) {return __libcpp_iscntrl(__c);}
78227825Stheraven#else  // iscntrl
79227825Stheravenusing ::iscntrl;
80227825Stheraven#endif  // iscntrl
81227825Stheraven
82227825Stheraven#ifdef isdigit
83227825Stheraveninline _LIBCPP_INLINE_VISIBILITY int __libcpp_isdigit(int __c) {return isdigit(__c);}
84227825Stheraven#undef isdigit
85227825Stheraveninline _LIBCPP_INLINE_VISIBILITY int isdigit(int __c) {return __libcpp_isdigit(__c);}
86227825Stheraven#else  // isdigit
87227825Stheravenusing ::isdigit;
88227825Stheraven#endif  // isdigit
89227825Stheraven
90227825Stheraven#ifdef isgraph
91227825Stheraveninline _LIBCPP_INLINE_VISIBILITY int __libcpp_isgraph(int __c) {return isgraph(__c);}
92227825Stheraven#undef isgraph
93227825Stheraveninline _LIBCPP_INLINE_VISIBILITY int isgraph(int __c) {return __libcpp_isgraph(__c);}
94227825Stheraven#else  // isgraph
95227825Stheravenusing ::isgraph;
96227825Stheraven#endif  // isgraph
97227825Stheraven
98227825Stheraven#ifdef islower
99227825Stheraveninline _LIBCPP_INLINE_VISIBILITY int __libcpp_islower(int __c) {return islower(__c);}
100227825Stheraven#undef islower
101227825Stheraveninline _LIBCPP_INLINE_VISIBILITY int islower(int __c) {return __libcpp_islower(__c);}
102227825Stheraven#else  // islower
103227825Stheravenusing ::islower;
104227825Stheraven#endif  // islower
105227825Stheraven
106227825Stheraven#ifdef isprint
107227825Stheraveninline _LIBCPP_INLINE_VISIBILITY int __libcpp_isprint(int __c) {return isprint(__c);}
108227825Stheraven#undef isprint
109227825Stheraveninline _LIBCPP_INLINE_VISIBILITY int isprint(int __c) {return __libcpp_isprint(__c);}
110227825Stheraven#else  // isprint
111227825Stheravenusing ::isprint;
112227825Stheraven#endif  // isprint
113227825Stheraven
114227825Stheraven#ifdef ispunct
115227825Stheraveninline _LIBCPP_INLINE_VISIBILITY int __libcpp_ispunct(int __c) {return ispunct(__c);}
116227825Stheraven#undef ispunct
117227825Stheraveninline _LIBCPP_INLINE_VISIBILITY int ispunct(int __c) {return __libcpp_ispunct(__c);}
118227825Stheraven#else  // ispunct
119227825Stheravenusing ::ispunct;
120227825Stheraven#endif  // ispunct
121227825Stheraven
122227825Stheraven#ifdef isspace
123227825Stheraveninline _LIBCPP_INLINE_VISIBILITY int __libcpp_isspace(int __c) {return isspace(__c);}
124227825Stheraven#undef isspace
125227825Stheraveninline _LIBCPP_INLINE_VISIBILITY int isspace(int __c) {return __libcpp_isspace(__c);}
126227825Stheraven#else  // isspace
127227825Stheravenusing ::isspace;
128227825Stheraven#endif  // isspace
129227825Stheraven
130227825Stheraven#ifdef isupper
131227825Stheraveninline _LIBCPP_INLINE_VISIBILITY int __libcpp_isupper(int __c) {return isupper(__c);}
132227825Stheraven#undef isupper
133227825Stheraveninline _LIBCPP_INLINE_VISIBILITY int isupper(int __c) {return __libcpp_isupper(__c);}
134227825Stheraven#else  // isupper
135227825Stheravenusing ::isupper;
136227825Stheraven#endif  // isupper
137227825Stheraven
138227825Stheraven#ifdef isxdigit
139227825Stheraveninline _LIBCPP_INLINE_VISIBILITY int __libcpp_isxdigit(int __c) {return isxdigit(__c);}
140227825Stheraven#undef isxdigit
141227825Stheraveninline _LIBCPP_INLINE_VISIBILITY int isxdigit(int __c) {return __libcpp_isxdigit(__c);}
142227825Stheraven#else  // isxdigit
143227825Stheravenusing ::isxdigit;
144227825Stheraven#endif  // isxdigit
145227825Stheraven
146227825Stheraven#ifdef tolower
147227825Stheraveninline _LIBCPP_INLINE_VISIBILITY int __libcpp_tolower(int __c) {return tolower(__c);}
148227825Stheraven#undef tolower
149227825Stheraveninline _LIBCPP_INLINE_VISIBILITY int tolower(int __c) {return __libcpp_tolower(__c);}
150227825Stheraven#else  // tolower
151227825Stheravenusing ::tolower;
152227825Stheraven#endif  // tolower
153227825Stheraven
154227825Stheraven#ifdef toupper
155227825Stheraveninline _LIBCPP_INLINE_VISIBILITY int __libcpp_toupper(int __c) {return toupper(__c);}
156227825Stheraven#undef toupper
157227825Stheraveninline _LIBCPP_INLINE_VISIBILITY int toupper(int __c) {return __libcpp_toupper(__c);}
158227825Stheraven#else  // toupper
159227825Stheravenusing ::toupper;
160227825Stheraven#endif  // toupper
161227825Stheraven
162227825Stheraven_LIBCPP_END_NAMESPACE_STD
163227825Stheraven
164227825Stheraven#endif  // _LIBCPP_CCTYPE
165