mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2024-10-07 10:54:01 +00:00
[libc++] Make bsd_locale_fallbacks.h modular and move it into __locale/locale_base_api/
This is a first step towards granularizing `<locale>`. Reviewed By: ldionne, #libc Spies: arichardson, libcxx-commits, mikhail.ramalho Differential Revision: https://reviews.llvm.org/D146397
This commit is contained in:
parent
596d87c4cc
commit
c847b8e24c
@ -222,8 +222,6 @@ set(files
|
||||
__bit/popcount.h
|
||||
__bit/rotate.h
|
||||
__bit_reference
|
||||
__bsd_locale_defaults.h
|
||||
__bsd_locale_fallbacks.h
|
||||
__charconv/chars_format.h
|
||||
__charconv/from_chars_integral.h
|
||||
__charconv/from_chars_result.h
|
||||
@ -439,6 +437,9 @@ set(files
|
||||
__iterator/unreachable_sentinel.h
|
||||
__iterator/wrap_iter.h
|
||||
__locale
|
||||
__locale_dir/locale_base_api/bsd_locale_defaults.h
|
||||
__locale_dir/locale_base_api/bsd_locale_fallbacks.h
|
||||
__locale_dir/locale_base_api/locale_guard.h
|
||||
__mbstate_t.h
|
||||
__memory/addressof.h
|
||||
__memory/align.h
|
||||
|
@ -13,9 +13,9 @@
|
||||
#include <__availability>
|
||||
#include <__config>
|
||||
#include <cctype>
|
||||
#include <clocale>
|
||||
#include <cstdint>
|
||||
#include <cstdlib>
|
||||
#include <locale.h>
|
||||
#include <mutex>
|
||||
#include <string>
|
||||
|
||||
@ -23,6 +23,10 @@
|
||||
#include <cstddef>
|
||||
#include <cstring>
|
||||
|
||||
#ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS
|
||||
# include <cwchar>
|
||||
#endif
|
||||
|
||||
#if defined(_LIBCPP_MSVCRT_LIKE)
|
||||
# include <__support/win32/locale_win32.h>
|
||||
#elif defined(_AIX) || defined(__MVS__)
|
||||
@ -53,63 +57,6 @@
|
||||
|
||||
_LIBCPP_BEGIN_NAMESPACE_STD
|
||||
|
||||
#if !defined(_LIBCPP_LOCALE__L_EXTENSIONS)
|
||||
struct __libcpp_locale_guard {
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
__libcpp_locale_guard(locale_t& __loc) : __old_loc_(uselocale(__loc)) {}
|
||||
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
~__libcpp_locale_guard() {
|
||||
if (__old_loc_)
|
||||
uselocale(__old_loc_);
|
||||
}
|
||||
|
||||
locale_t __old_loc_;
|
||||
private:
|
||||
__libcpp_locale_guard(__libcpp_locale_guard const&);
|
||||
__libcpp_locale_guard& operator=(__libcpp_locale_guard const&);
|
||||
};
|
||||
#elif defined(_LIBCPP_MSVCRT_LIKE)
|
||||
struct __libcpp_locale_guard {
|
||||
__libcpp_locale_guard(locale_t __l) :
|
||||
__status(_configthreadlocale(_ENABLE_PER_THREAD_LOCALE)) {
|
||||
// Setting the locale can be expensive even when the locale given is
|
||||
// already the current locale, so do an explicit check to see if the
|
||||
// current locale is already the one we want.
|
||||
const char* __lc = __setlocale(nullptr);
|
||||
// If every category is the same, the locale string will simply be the
|
||||
// locale name, otherwise it will be a semicolon-separated string listing
|
||||
// each category. In the second case, we know at least one category won't
|
||||
// be what we want, so we only have to check the first case.
|
||||
if (_VSTD::strcmp(__l.__get_locale(), __lc) != 0) {
|
||||
__locale_all = _strdup(__lc);
|
||||
if (__locale_all == nullptr)
|
||||
__throw_bad_alloc();
|
||||
__setlocale(__l.__get_locale());
|
||||
}
|
||||
}
|
||||
~__libcpp_locale_guard() {
|
||||
// The CRT documentation doesn't explicitly say, but setlocale() does the
|
||||
// right thing when given a semicolon-separated list of locale settings
|
||||
// for the different categories in the same format as returned by
|
||||
// setlocale(LC_ALL, nullptr).
|
||||
if (__locale_all != nullptr) {
|
||||
__setlocale(__locale_all);
|
||||
free(__locale_all);
|
||||
}
|
||||
_configthreadlocale(__status);
|
||||
}
|
||||
static const char* __setlocale(const char* __locale) {
|
||||
const char* __new_locale = setlocale(LC_ALL, __locale);
|
||||
if (__new_locale == nullptr)
|
||||
__throw_bad_alloc();
|
||||
return __new_locale;
|
||||
}
|
||||
int __status;
|
||||
char* __locale_all = nullptr;
|
||||
};
|
||||
#endif
|
||||
|
||||
class _LIBCPP_TYPE_VIS locale;
|
||||
|
||||
template <class _Facet>
|
||||
|
@ -11,8 +11,8 @@
|
||||
// we will define the mapping from an internal macro to the real BSD symbol.
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#ifndef _LIBCPP___BSD_LOCALE_DEFAULTS_H
|
||||
#define _LIBCPP___BSD_LOCALE_DEFAULTS_H
|
||||
#ifndef _LIBCPP___LOCALE_LOCALE_BASE_API_BSD_LOCALE_DEFAULTS_H
|
||||
#define _LIBCPP___LOCALE_LOCALE_BASE_API_BSD_LOCALE_DEFAULTS_H
|
||||
|
||||
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
|
||||
# pragma GCC system_header
|
||||
@ -33,4 +33,4 @@
|
||||
#define __libcpp_asprintf_l(...) asprintf_l(__VA_ARGS__)
|
||||
#define __libcpp_sscanf_l(...) sscanf_l(__VA_ARGS__)
|
||||
|
||||
#endif // _LIBCPP___BSD_LOCALE_DEFAULTS_H
|
||||
#endif // _LIBCPP___LOCALE_LOCALE_BASE_API_BSD_LOCALE_DEFAULTS_H
|
@ -10,12 +10,18 @@
|
||||
// of those functions for non-BSD platforms.
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#ifndef _LIBCPP___BSD_LOCALE_FALLBACKS_H
|
||||
#define _LIBCPP___BSD_LOCALE_FALLBACKS_H
|
||||
#ifndef _LIBCPP___LOCALE_LOCALE_BASE_API_BSD_LOCALE_FALLBACKS_H
|
||||
#define _LIBCPP___LOCALE_LOCALE_BASE_API_BSD_LOCALE_FALLBACKS_H
|
||||
|
||||
#include <__locale_dir/locale_base_api/locale_guard.h>
|
||||
#include <cstdio>
|
||||
#include <stdarg.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS
|
||||
# include <cwchar>
|
||||
#endif
|
||||
|
||||
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
|
||||
# pragma GCC system_header
|
||||
#endif
|
||||
@ -139,4 +145,4 @@ int __libcpp_sscanf_l(const char *__s, locale_t __l, const char *__format, ...)
|
||||
|
||||
_LIBCPP_END_NAMESPACE_STD
|
||||
|
||||
#endif // _LIBCPP___BSD_LOCALE_FALLBACKS_H
|
||||
#endif // _LIBCPP___LOCALE_LOCALE_BASE_API_BSD_LOCALE_FALLBACKS_H
|
79
libcxx/include/__locale_dir/locale_base_api/locale_guard.h
Normal file
79
libcxx/include/__locale_dir/locale_base_api/locale_guard.h
Normal file
@ -0,0 +1,79 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
||||
// See https://llvm.org/LICENSE.txt for license information.
|
||||
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#ifndef _LIBCPP___LOCALE_LOCALE_BASE_API_LOCALE_GUARD_H
|
||||
#define _LIBCPP___LOCALE_LOCALE_BASE_API_LOCALE_GUARD_H
|
||||
|
||||
#include <__config>
|
||||
#include <clocale>
|
||||
|
||||
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
|
||||
# pragma GCC system_header
|
||||
#endif
|
||||
|
||||
_LIBCPP_BEGIN_NAMESPACE_STD
|
||||
|
||||
#if !defined(_LIBCPP_LOCALE__L_EXTENSIONS)
|
||||
struct __libcpp_locale_guard {
|
||||
_LIBCPP_INLINE_VISIBILITY __libcpp_locale_guard(locale_t& __loc) : __old_loc_(uselocale(__loc)) {}
|
||||
|
||||
_LIBCPP_INLINE_VISIBILITY ~__libcpp_locale_guard() {
|
||||
if (__old_loc_)
|
||||
uselocale(__old_loc_);
|
||||
}
|
||||
|
||||
locale_t __old_loc_;
|
||||
|
||||
private:
|
||||
__libcpp_locale_guard(__libcpp_locale_guard const&);
|
||||
__libcpp_locale_guard& operator=(__libcpp_locale_guard const&);
|
||||
};
|
||||
#elif defined(_LIBCPP_MSVCRT_LIKE)
|
||||
struct __libcpp_locale_guard {
|
||||
__libcpp_locale_guard(locale_t __l) :
|
||||
__status(_configthreadlocale(_ENABLE_PER_THREAD_LOCALE)) {
|
||||
// Setting the locale can be expensive even when the locale given is
|
||||
// already the current locale, so do an explicit check to see if the
|
||||
// current locale is already the one we want.
|
||||
const char* __lc = __setlocale(nullptr);
|
||||
// If every category is the same, the locale string will simply be the
|
||||
// locale name, otherwise it will be a semicolon-separated string listing
|
||||
// each category. In the second case, we know at least one category won't
|
||||
// be what we want, so we only have to check the first case.
|
||||
if (_VSTD::strcmp(__l.__get_locale(), __lc) != 0) {
|
||||
__locale_all = _strdup(__lc);
|
||||
if (__locale_all == nullptr)
|
||||
__throw_bad_alloc();
|
||||
__setlocale(__l.__get_locale());
|
||||
}
|
||||
}
|
||||
~__libcpp_locale_guard() {
|
||||
// The CRT documentation doesn't explicitly say, but setlocale() does the
|
||||
// right thing when given a semicolon-separated list of locale settings
|
||||
// for the different categories in the same format as returned by
|
||||
// setlocale(LC_ALL, nullptr).
|
||||
if (__locale_all != nullptr) {
|
||||
__setlocale(__locale_all);
|
||||
free(__locale_all);
|
||||
}
|
||||
_configthreadlocale(__status);
|
||||
}
|
||||
static const char* __setlocale(const char* __locale) {
|
||||
const char* __new_locale = setlocale(LC_ALL, __locale);
|
||||
if (__new_locale == nullptr)
|
||||
__throw_bad_alloc();
|
||||
return __new_locale;
|
||||
}
|
||||
int __status;
|
||||
char* __locale_all = nullptr;
|
||||
};
|
||||
#endif
|
||||
|
||||
_LIBCPP_END_NAMESPACE_STD
|
||||
|
||||
#endif // _LIBCPP___LOCALE_LOCALE_BASE_API_LOCALE_GUARD_H
|
@ -32,6 +32,7 @@
|
||||
{ include: [ "@<__fwd/.*>", "private", "<fwd>", "public" ] },
|
||||
{ include: [ "@<__ios/.*>", "private", "<ios>", "public" ] },
|
||||
{ include: [ "@<__iterator/.*>", "private", "<iterator>", "public" ] },
|
||||
{ include: [ "@<__locale_dir/.*>", "private", "<locale>", "public" ] },
|
||||
{ include: [ "@<__memory/.*>", "private", "<memory>", "public" ] },
|
||||
{ include: [ "@<__memory_resource/.*>", "private", "<memory_resource>", "public" ] },
|
||||
{ include: [ "@<__mutex/.*>", "private", "<mutex>", "public" ] },
|
||||
|
@ -225,9 +225,9 @@ template <class charT> class messages_byname;
|
||||
#endif
|
||||
|
||||
#ifdef _LIBCPP_LOCALE__L_EXTENSIONS
|
||||
#include <__bsd_locale_defaults.h>
|
||||
# include <__locale_dir/locale_base_api/bsd_locale_defaults.h>
|
||||
#else
|
||||
#include <__bsd_locale_fallbacks.h>
|
||||
# include <__locale_dir/locale_base_api/bsd_locale_fallbacks.h>
|
||||
#endif
|
||||
|
||||
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
|
||||
|
@ -11,6 +11,10 @@
|
||||
#include <new>
|
||||
#include <string>
|
||||
|
||||
#ifdef _LIBCPP_MSVCRT_LIKE
|
||||
# include <__locale_dir/locale_base_api/locale_guard.h>
|
||||
#endif
|
||||
|
||||
#define _str(s) #s
|
||||
#define str(s) _str(s)
|
||||
#define _LIBCPP_ABI_NAMESPACE_STR str(_LIBCPP_ABI_NAMESPACE)
|
||||
|
@ -11,6 +11,8 @@
|
||||
#include <memory>
|
||||
#include <type_traits>
|
||||
|
||||
#include <__locale_dir/locale_base_api/locale_guard.h>
|
||||
|
||||
int __libcpp_vasprintf(char **sptr, const char *__restrict fmt, va_list ap);
|
||||
|
||||
using std::__libcpp_locale_guard;
|
||||
|
@ -23,7 +23,7 @@ if __name__ == '__main__':
|
||||
if re.match(r'^\s*module (\w+)\s+[{] private header "\1(.h)?"\s+export [*] [}]', line):
|
||||
# It's a top-level private header, such as <__bit_reference>.
|
||||
pass
|
||||
elif re.match(r'^\s*module (\w+)\s+[{] private header "__\w+/\1[.]h" [}]', line):
|
||||
elif re.match(r'^\s*module (\w+)\s+[{] private (textual )?header "__(\w+/)*\1[.]h" [}]', line):
|
||||
# It's a private submodule, such as <__utility/swap.h>.
|
||||
pass
|
||||
elif re.match(r'^\s*module (\w+)_fwd\s+[{] private header "__fwd/\1[.]h" [}]', line):
|
||||
|
@ -23,6 +23,10 @@ for header in private_headers:
|
||||
if header.startswith('__support'):
|
||||
continue
|
||||
|
||||
# Skip the locale API headers, since they are platform-specific and thus inherently non-modular
|
||||
if 'locale_base_api' in header:
|
||||
continue
|
||||
|
||||
print("{ifdef}#{indent}include <{header}> // {expected_error}@*:* {{{{use of private header from outside its module: '{header}'}}}}{endif}".format(
|
||||
ifdef='#if ' + header_restrictions[header] + '\n' if header in header_restrictions else '',
|
||||
indent=' ' if header in header_restrictions else '',
|
||||
|
@ -127,11 +127,13 @@ cmath type_traits
|
||||
cmath version
|
||||
codecvt atomic
|
||||
codecvt cctype
|
||||
codecvt clocale
|
||||
codecvt concepts
|
||||
codecvt cstddef
|
||||
codecvt cstdint
|
||||
codecvt cstdlib
|
||||
codecvt cstring
|
||||
codecvt cwchar
|
||||
codecvt initializer_list
|
||||
codecvt iosfwd
|
||||
codecvt limits
|
||||
@ -354,12 +356,14 @@ forward_list typeinfo
|
||||
forward_list version
|
||||
fstream atomic
|
||||
fstream cctype
|
||||
fstream clocale
|
||||
fstream concepts
|
||||
fstream cstddef
|
||||
fstream cstdint
|
||||
fstream cstdio
|
||||
fstream cstdlib
|
||||
fstream cstring
|
||||
fstream cwchar
|
||||
fstream filesystem
|
||||
fstream initializer_list
|
||||
fstream iosfwd
|
||||
@ -420,11 +424,13 @@ iomanip istream
|
||||
iomanip version
|
||||
ios atomic
|
||||
ios cctype
|
||||
ios clocale
|
||||
ios concepts
|
||||
ios cstddef
|
||||
ios cstdint
|
||||
ios cstdlib
|
||||
ios cstring
|
||||
ios cwchar
|
||||
ios initializer_list
|
||||
ios iosfwd
|
||||
ios limits
|
||||
@ -496,6 +502,7 @@ list version
|
||||
locale atomic
|
||||
locale cctype
|
||||
locale cerrno
|
||||
locale clocale
|
||||
locale concepts
|
||||
locale cstdarg
|
||||
locale cstddef
|
||||
@ -504,6 +511,7 @@ locale cstdio
|
||||
locale cstdlib
|
||||
locale cstring
|
||||
locale ctime
|
||||
locale cwchar
|
||||
locale initializer_list
|
||||
locale ios
|
||||
locale iosfwd
|
||||
@ -681,12 +689,14 @@ ratio type_traits
|
||||
ratio version
|
||||
regex atomic
|
||||
regex cctype
|
||||
regex clocale
|
||||
regex compare
|
||||
regex concepts
|
||||
regex cstddef
|
||||
regex cstdint
|
||||
regex cstdlib
|
||||
regex cstring
|
||||
regex cwchar
|
||||
regex deque
|
||||
regex initializer_list
|
||||
regex iosfwd
|
||||
|
|
@ -127,11 +127,13 @@ cmath type_traits
|
||||
cmath version
|
||||
codecvt atomic
|
||||
codecvt cctype
|
||||
codecvt clocale
|
||||
codecvt concepts
|
||||
codecvt cstddef
|
||||
codecvt cstdint
|
||||
codecvt cstdlib
|
||||
codecvt cstring
|
||||
codecvt cwchar
|
||||
codecvt initializer_list
|
||||
codecvt iosfwd
|
||||
codecvt limits
|
||||
@ -354,12 +356,14 @@ forward_list typeinfo
|
||||
forward_list version
|
||||
fstream atomic
|
||||
fstream cctype
|
||||
fstream clocale
|
||||
fstream concepts
|
||||
fstream cstddef
|
||||
fstream cstdint
|
||||
fstream cstdio
|
||||
fstream cstdlib
|
||||
fstream cstring
|
||||
fstream cwchar
|
||||
fstream filesystem
|
||||
fstream initializer_list
|
||||
fstream iosfwd
|
||||
@ -420,11 +424,13 @@ iomanip istream
|
||||
iomanip version
|
||||
ios atomic
|
||||
ios cctype
|
||||
ios clocale
|
||||
ios concepts
|
||||
ios cstddef
|
||||
ios cstdint
|
||||
ios cstdlib
|
||||
ios cstring
|
||||
ios cwchar
|
||||
ios initializer_list
|
||||
ios iosfwd
|
||||
ios limits
|
||||
@ -496,6 +502,7 @@ list version
|
||||
locale atomic
|
||||
locale cctype
|
||||
locale cerrno
|
||||
locale clocale
|
||||
locale concepts
|
||||
locale cstdarg
|
||||
locale cstddef
|
||||
@ -504,6 +511,7 @@ locale cstdio
|
||||
locale cstdlib
|
||||
locale cstring
|
||||
locale ctime
|
||||
locale cwchar
|
||||
locale initializer_list
|
||||
locale ios
|
||||
locale iosfwd
|
||||
@ -682,12 +690,14 @@ ratio type_traits
|
||||
ratio version
|
||||
regex atomic
|
||||
regex cctype
|
||||
regex clocale
|
||||
regex compare
|
||||
regex concepts
|
||||
regex cstddef
|
||||
regex cstdint
|
||||
regex cstdlib
|
||||
regex cstring
|
||||
regex cwchar
|
||||
regex deque
|
||||
regex initializer_list
|
||||
regex iosfwd
|
||||
|
|
@ -127,11 +127,13 @@ cmath type_traits
|
||||
cmath version
|
||||
codecvt atomic
|
||||
codecvt cctype
|
||||
codecvt clocale
|
||||
codecvt concepts
|
||||
codecvt cstddef
|
||||
codecvt cstdint
|
||||
codecvt cstdlib
|
||||
codecvt cstring
|
||||
codecvt cwchar
|
||||
codecvt initializer_list
|
||||
codecvt iosfwd
|
||||
codecvt limits
|
||||
@ -356,12 +358,14 @@ forward_list typeinfo
|
||||
forward_list version
|
||||
fstream atomic
|
||||
fstream cctype
|
||||
fstream clocale
|
||||
fstream concepts
|
||||
fstream cstddef
|
||||
fstream cstdint
|
||||
fstream cstdio
|
||||
fstream cstdlib
|
||||
fstream cstring
|
||||
fstream cwchar
|
||||
fstream filesystem
|
||||
fstream initializer_list
|
||||
fstream iosfwd
|
||||
@ -422,11 +426,13 @@ iomanip istream
|
||||
iomanip version
|
||||
ios atomic
|
||||
ios cctype
|
||||
ios clocale
|
||||
ios concepts
|
||||
ios cstddef
|
||||
ios cstdint
|
||||
ios cstdlib
|
||||
ios cstring
|
||||
ios cwchar
|
||||
ios initializer_list
|
||||
ios iosfwd
|
||||
ios limits
|
||||
@ -498,6 +504,7 @@ list version
|
||||
locale atomic
|
||||
locale cctype
|
||||
locale cerrno
|
||||
locale clocale
|
||||
locale concepts
|
||||
locale cstdarg
|
||||
locale cstddef
|
||||
@ -506,6 +513,7 @@ locale cstdio
|
||||
locale cstdlib
|
||||
locale cstring
|
||||
locale ctime
|
||||
locale cwchar
|
||||
locale initializer_list
|
||||
locale ios
|
||||
locale iosfwd
|
||||
@ -684,12 +692,14 @@ ratio type_traits
|
||||
ratio version
|
||||
regex atomic
|
||||
regex cctype
|
||||
regex clocale
|
||||
regex compare
|
||||
regex concepts
|
||||
regex cstddef
|
||||
regex cstdint
|
||||
regex cstdlib
|
||||
regex cstring
|
||||
regex cwchar
|
||||
regex deque
|
||||
regex initializer_list
|
||||
regex iosfwd
|
||||
|
|
@ -127,11 +127,13 @@ cmath type_traits
|
||||
cmath version
|
||||
codecvt atomic
|
||||
codecvt cctype
|
||||
codecvt clocale
|
||||
codecvt concepts
|
||||
codecvt cstddef
|
||||
codecvt cstdint
|
||||
codecvt cstdlib
|
||||
codecvt cstring
|
||||
codecvt cwchar
|
||||
codecvt initializer_list
|
||||
codecvt iosfwd
|
||||
codecvt limits
|
||||
@ -356,12 +358,14 @@ forward_list typeinfo
|
||||
forward_list version
|
||||
fstream atomic
|
||||
fstream cctype
|
||||
fstream clocale
|
||||
fstream concepts
|
||||
fstream cstddef
|
||||
fstream cstdint
|
||||
fstream cstdio
|
||||
fstream cstdlib
|
||||
fstream cstring
|
||||
fstream cwchar
|
||||
fstream filesystem
|
||||
fstream initializer_list
|
||||
fstream iosfwd
|
||||
@ -422,11 +426,13 @@ iomanip istream
|
||||
iomanip version
|
||||
ios atomic
|
||||
ios cctype
|
||||
ios clocale
|
||||
ios concepts
|
||||
ios cstddef
|
||||
ios cstdint
|
||||
ios cstdlib
|
||||
ios cstring
|
||||
ios cwchar
|
||||
ios initializer_list
|
||||
ios iosfwd
|
||||
ios limits
|
||||
@ -498,6 +504,7 @@ list version
|
||||
locale atomic
|
||||
locale cctype
|
||||
locale cerrno
|
||||
locale clocale
|
||||
locale concepts
|
||||
locale cstdarg
|
||||
locale cstddef
|
||||
@ -506,6 +513,7 @@ locale cstdio
|
||||
locale cstdlib
|
||||
locale cstring
|
||||
locale ctime
|
||||
locale cwchar
|
||||
locale initializer_list
|
||||
locale ios
|
||||
locale iosfwd
|
||||
@ -684,12 +692,14 @@ ratio type_traits
|
||||
ratio version
|
||||
regex atomic
|
||||
regex cctype
|
||||
regex clocale
|
||||
regex compare
|
||||
regex concepts
|
||||
regex cstddef
|
||||
regex cstdint
|
||||
regex cstdlib
|
||||
regex cstring
|
||||
regex cwchar
|
||||
regex deque
|
||||
regex initializer_list
|
||||
regex iosfwd
|
||||
|
|
@ -134,11 +134,13 @@ cmath type_traits
|
||||
cmath version
|
||||
codecvt atomic
|
||||
codecvt cctype
|
||||
codecvt clocale
|
||||
codecvt concepts
|
||||
codecvt cstddef
|
||||
codecvt cstdint
|
||||
codecvt cstdlib
|
||||
codecvt cstring
|
||||
codecvt cwchar
|
||||
codecvt initializer_list
|
||||
codecvt iosfwd
|
||||
codecvt limits
|
||||
@ -363,12 +365,14 @@ forward_list typeinfo
|
||||
forward_list version
|
||||
fstream atomic
|
||||
fstream cctype
|
||||
fstream clocale
|
||||
fstream concepts
|
||||
fstream cstddef
|
||||
fstream cstdint
|
||||
fstream cstdio
|
||||
fstream cstdlib
|
||||
fstream cstring
|
||||
fstream cwchar
|
||||
fstream filesystem
|
||||
fstream initializer_list
|
||||
fstream iosfwd
|
||||
@ -428,11 +432,13 @@ iomanip istream
|
||||
iomanip version
|
||||
ios atomic
|
||||
ios cctype
|
||||
ios clocale
|
||||
ios concepts
|
||||
ios cstddef
|
||||
ios cstdint
|
||||
ios cstdlib
|
||||
ios cstring
|
||||
ios cwchar
|
||||
ios initializer_list
|
||||
ios iosfwd
|
||||
ios limits
|
||||
@ -504,6 +510,7 @@ list version
|
||||
locale atomic
|
||||
locale cctype
|
||||
locale cerrno
|
||||
locale clocale
|
||||
locale concepts
|
||||
locale cstdarg
|
||||
locale cstddef
|
||||
@ -512,6 +519,7 @@ locale cstdio
|
||||
locale cstdlib
|
||||
locale cstring
|
||||
locale ctime
|
||||
locale cwchar
|
||||
locale initializer_list
|
||||
locale ios
|
||||
locale iosfwd
|
||||
@ -690,12 +698,14 @@ ratio type_traits
|
||||
ratio version
|
||||
regex atomic
|
||||
regex cctype
|
||||
regex clocale
|
||||
regex compare
|
||||
regex concepts
|
||||
regex cstddef
|
||||
regex cstdint
|
||||
regex cstdlib
|
||||
regex cstring
|
||||
regex cwchar
|
||||
regex deque
|
||||
regex initializer_list
|
||||
regex iosfwd
|
||||
|
|
@ -84,10 +84,12 @@ chrono version
|
||||
cinttypes cstdint
|
||||
cmath version
|
||||
codecvt cctype
|
||||
codecvt clocale
|
||||
codecvt cstddef
|
||||
codecvt cstdint
|
||||
codecvt cstdlib
|
||||
codecvt cstring
|
||||
codecvt cwchar
|
||||
codecvt mutex
|
||||
codecvt string
|
||||
codecvt version
|
||||
@ -242,11 +244,13 @@ forward_list stdexcept
|
||||
forward_list tuple
|
||||
forward_list version
|
||||
fstream cctype
|
||||
fstream clocale
|
||||
fstream cstddef
|
||||
fstream cstdint
|
||||
fstream cstdio
|
||||
fstream cstdlib
|
||||
fstream cstring
|
||||
fstream cwchar
|
||||
fstream filesystem
|
||||
fstream initializer_list
|
||||
fstream istream
|
||||
@ -290,10 +294,12 @@ initializer_list cstddef
|
||||
iomanip istream
|
||||
iomanip version
|
||||
ios cctype
|
||||
ios clocale
|
||||
ios cstddef
|
||||
ios cstdint
|
||||
ios cstdlib
|
||||
ios cstring
|
||||
ios cwchar
|
||||
ios iosfwd
|
||||
ios mutex
|
||||
ios string
|
||||
@ -337,12 +343,14 @@ list tuple
|
||||
list version
|
||||
locale cctype
|
||||
locale cerrno
|
||||
locale clocale
|
||||
locale cstddef
|
||||
locale cstdint
|
||||
locale cstdio
|
||||
locale cstdlib
|
||||
locale cstring
|
||||
locale ctime
|
||||
locale cwchar
|
||||
locale initializer_list
|
||||
locale ios
|
||||
locale iosfwd
|
||||
@ -460,11 +468,13 @@ ratio climits
|
||||
ratio cstdint
|
||||
ratio version
|
||||
regex cctype
|
||||
regex clocale
|
||||
regex compare
|
||||
regex cstddef
|
||||
regex cstdint
|
||||
regex cstdlib
|
||||
regex cstring
|
||||
regex cwchar
|
||||
regex deque
|
||||
regex initializer_list
|
||||
regex limits
|
||||
|
|
@ -236,8 +236,6 @@ libcxx/include/__bit/popcount.h
|
||||
libcxx/include/__bit_reference
|
||||
libcxx/include/__bit/rotate.h
|
||||
libcxx/include/bitset
|
||||
libcxx/include/__bsd_locale_defaults.h
|
||||
libcxx/include/__bsd_locale_fallbacks.h
|
||||
libcxx/include/cctype
|
||||
libcxx/include/chrono
|
||||
libcxx/include/__chrono/calendar.h
|
||||
@ -455,6 +453,9 @@ libcxx/include/limits.h
|
||||
libcxx/include/list
|
||||
libcxx/include/__locale
|
||||
libcxx/include/locale
|
||||
libcxx/include/__locale_dir/locale_base_api/bsd_locale_defaults.h
|
||||
libcxx/include/__locale_dir/locale_base_api/bsd_locale_fallbacks.h
|
||||
libcxx/include/__locale_dir/locale_base_api/locale_guard.h
|
||||
libcxx/include/locale.h
|
||||
libcxx/include/map
|
||||
libcxx/include/math.h
|
||||
|
@ -64,7 +64,7 @@ header_restrictions = {
|
||||
}
|
||||
|
||||
private_headers_still_public_in_modules = [
|
||||
'__assert', '__bsd_locale_defaults.h', '__bsd_locale_fallbacks.h', '__config',
|
||||
'__assert', '__config',
|
||||
'__config_site.in', '__debug', '__hash_table',
|
||||
'__threading_support', '__tree', '__undef_macros', '__verbose_abort'
|
||||
]
|
||||
|
@ -30,7 +30,7 @@ def generate_map(include):
|
||||
c_headers.append(i.name)
|
||||
|
||||
result = []
|
||||
temporary_mappings = {}
|
||||
temporary_mappings = {'__locale_dir' : 'locale'}
|
||||
for i in detail_directories:
|
||||
public_header = temporary_mappings.get(i, i.lstrip('_'))
|
||||
result.append(f'{generate(f"@<{i}/.*>", public_header)},')
|
||||
@ -41,8 +41,6 @@ def generate_map(include):
|
||||
elif i == '__availability': continue
|
||||
elif i == '__bit_reference': continue
|
||||
elif i == '__bits': public = ['bits']
|
||||
elif i == '__bsd_locale_defaults.h': continue
|
||||
elif i == '__bsd_locale_fallbacks.h': continue
|
||||
elif i == '__config_site.in': continue
|
||||
elif i == '__config': continue
|
||||
elif i == '__debug': continue
|
||||
|
Loading…
Reference in New Issue
Block a user