Split <ctype.h> out of <cctype>.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@249738 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
72d7577b34
commit
ceeace9a60
@ -37,10 +37,6 @@ int toupper(int c);
|
|||||||
|
|
||||||
#include <__config>
|
#include <__config>
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
#if defined(_LIBCPP_MSVCRT)
|
|
||||||
#include "support/win32/support.h"
|
|
||||||
#include "support/win32/locale_win32.h"
|
|
||||||
#endif // _LIBCPP_MSVCRT
|
|
||||||
|
|
||||||
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
|
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
|
||||||
#pragma GCC system_header
|
#pragma GCC system_header
|
||||||
@ -48,33 +44,19 @@ int toupper(int c);
|
|||||||
|
|
||||||
_LIBCPP_BEGIN_NAMESPACE_STD
|
_LIBCPP_BEGIN_NAMESPACE_STD
|
||||||
|
|
||||||
#undef isalnum
|
|
||||||
using ::isalnum;
|
using ::isalnum;
|
||||||
#undef isalpha
|
|
||||||
using ::isalpha;
|
using ::isalpha;
|
||||||
#undef isblank
|
|
||||||
using ::isblank;
|
using ::isblank;
|
||||||
#undef iscntrl
|
|
||||||
using ::iscntrl;
|
using ::iscntrl;
|
||||||
#undef isdigit
|
|
||||||
using ::isdigit;
|
using ::isdigit;
|
||||||
#undef isgraph
|
|
||||||
using ::isgraph;
|
using ::isgraph;
|
||||||
#undef islower
|
|
||||||
using ::islower;
|
using ::islower;
|
||||||
#undef isprint
|
|
||||||
using ::isprint;
|
using ::isprint;
|
||||||
#undef ispunct
|
|
||||||
using ::ispunct;
|
using ::ispunct;
|
||||||
#undef isspace
|
|
||||||
using ::isspace;
|
using ::isspace;
|
||||||
#undef isupper
|
|
||||||
using ::isupper;
|
using ::isupper;
|
||||||
#undef isxdigit
|
|
||||||
using ::isxdigit;
|
using ::isxdigit;
|
||||||
#undef tolower
|
|
||||||
using ::tolower;
|
using ::tolower;
|
||||||
#undef toupper
|
|
||||||
using ::toupper;
|
using ::toupper;
|
||||||
|
|
||||||
_LIBCPP_END_NAMESPACE_STD
|
_LIBCPP_END_NAMESPACE_STD
|
||||||
|
68
include/ctype.h
Normal file
68
include/ctype.h
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
// -*- C++ -*-
|
||||||
|
//===---------------------------- ctype.h ---------------------------------===//
|
||||||
|
//
|
||||||
|
// The LLVM Compiler Infrastructure
|
||||||
|
//
|
||||||
|
// This file is dual licensed under the MIT and the University of Illinois Open
|
||||||
|
// Source Licenses. See LICENSE.TXT for details.
|
||||||
|
//
|
||||||
|
//===----------------------------------------------------------------------===//
|
||||||
|
|
||||||
|
#ifndef _LIBCPP_CTYPE_H
|
||||||
|
#define _LIBCPP_CTYPE_H
|
||||||
|
|
||||||
|
/*
|
||||||
|
ctype.h synopsis
|
||||||
|
|
||||||
|
int isalnum(int c);
|
||||||
|
int isalpha(int c);
|
||||||
|
int isblank(int c); // C99
|
||||||
|
int iscntrl(int c);
|
||||||
|
int isdigit(int c);
|
||||||
|
int isgraph(int c);
|
||||||
|
int islower(int c);
|
||||||
|
int isprint(int c);
|
||||||
|
int ispunct(int c);
|
||||||
|
int isspace(int c);
|
||||||
|
int isupper(int c);
|
||||||
|
int isxdigit(int c);
|
||||||
|
int tolower(int c);
|
||||||
|
int toupper(int c);
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <__config>
|
||||||
|
#include_next <ctype.h>
|
||||||
|
|
||||||
|
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
|
||||||
|
#pragma GCC system_header
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
|
||||||
|
#if defined(_LIBCPP_MSVCRT)
|
||||||
|
// We support including .h headers inside 'extern "C"' contexts, so switch
|
||||||
|
// back to C++ linkage before including these C++ headers.
|
||||||
|
extern "C++" {
|
||||||
|
#include "support/win32/support.h"
|
||||||
|
#include "support/win32/locale_win32.h"
|
||||||
|
}
|
||||||
|
#endif // _LIBCPP_MSVCRT
|
||||||
|
|
||||||
|
#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
|
||||||
|
|
||||||
|
#endif // _LIBCPP_CTYPE_H
|
@ -86,18 +86,18 @@ int main()
|
|||||||
static_assert((std::is_same<decltype(std::tolower(0)), int>::value), "");
|
static_assert((std::is_same<decltype(std::tolower(0)), int>::value), "");
|
||||||
static_assert((std::is_same<decltype(std::toupper(0)), int>::value), "");
|
static_assert((std::is_same<decltype(std::toupper(0)), int>::value), "");
|
||||||
|
|
||||||
assert(isalnum('a'));
|
assert(std::isalnum('a'));
|
||||||
assert(isalpha('a'));
|
assert(std::isalpha('a'));
|
||||||
assert(isblank(' '));
|
assert(std::isblank(' '));
|
||||||
assert(!iscntrl(' '));
|
assert(!std::iscntrl(' '));
|
||||||
assert(!isdigit('a'));
|
assert(!std::isdigit('a'));
|
||||||
assert(isgraph('a'));
|
assert(std::isgraph('a'));
|
||||||
assert(islower('a'));
|
assert(std::islower('a'));
|
||||||
assert(isprint('a'));
|
assert(std::isprint('a'));
|
||||||
assert(!ispunct('a'));
|
assert(!std::ispunct('a'));
|
||||||
assert(!isspace('a'));
|
assert(!std::isspace('a'));
|
||||||
assert(!isupper('a'));
|
assert(!std::isupper('a'));
|
||||||
assert(isxdigit('a'));
|
assert(std::isxdigit('a'));
|
||||||
assert(tolower('A') == 'a');
|
assert(std::tolower('A') == 'a');
|
||||||
assert(toupper('a') == 'A');
|
assert(std::toupper('a') == 'A');
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user