1// -*- C++ -*-
2//===---------------------------- ctype.h ---------------------------------===//
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_CTYPE_H
12#define _LIBCPP_CTYPE_H
13
14/*
15    ctype.h synopsis
16
17int isalnum(int c);
18int isalpha(int c);
19int isblank(int c);  // C99
20int iscntrl(int c);
21int isdigit(int c);
22int isgraph(int c);
23int islower(int c);
24int isprint(int c);
25int ispunct(int c);
26int isspace(int c);
27int isupper(int c);
28int isxdigit(int c);
29int tolower(int c);
30int toupper(int c);
31*/
32
33#include <__config>
34
35#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
36#pragma GCC system_header
37#endif
38
39#include_next <ctype.h>
40
41#ifdef __cplusplus
42
43#if defined(_LIBCPP_MSVCRT)
44// We support including .h headers inside 'extern "C"' contexts, so switch
45// back to C++ linkage before including these C++ headers.
46extern "C++" {
47  #include "support/win32/support.h"
48  #include "support/win32/locale_win32.h"
49}
50#endif // _LIBCPP_MSVCRT
51
52#undef isalnum
53#undef isalpha
54#undef isblank
55#undef iscntrl
56#undef isdigit
57#undef isgraph
58#undef islower
59#undef isprint
60#undef ispunct
61#undef isspace
62#undef isupper
63#undef isxdigit
64#undef tolower
65#undef toupper
66
67#endif
68
69#endif  // _LIBCPP_CTYPE_H
70