17#if _UPPER != C1_UPPER || \
18 _LOWER != C1_LOWER || \
19 _DIGIT != C1_DIGIT || \
20 _SPACE != C1_SPACE || \
21 _PUNCT != C1_PUNCT || \
23 #error Character type masks do not agree in ctype and winnls
34extern "C" int __cdecl _chvalidator(
int const c,
int const mask)
37 return _chvalidator_l(
nullptr,
c,
mask);
44 _LocaleUpdate locale_update(
locale);
64 _LocaleUpdate locale_update(
locale);
66 if (
c >= -1 &&
c <= 255)
69 return locale_update.GetLocaleT()->locinfo->_public._locale_pctype[
c] &
mask;
79 buffer[1] =
static_cast<char>(
c);
85 buffer[0] =
static_cast<char>(
c);
93 locale_update.GetLocaleT(),
98 locale_update.GetLocaleT()->locinfo->_public._locale_lc_codepage,
105 return static_cast<int>(character_type[0] &
mask);
110 if (__acrt_locale_changed())
BOOL __cdecl __acrt_GetStringTypeA(_locale_t const locale, DWORD const info_type, LPCSTR const string, int const string_size_in_bytes, unsigned short *const char_type, int const code_page, BOOL const error)
__crt_locale_data __acrt_initial_locale_data
_Check_return_ __forceinline unsigned short __cdecl _isleadbyte_fast_internal(_In_ unsigned char const c, _In_ _locale_t const locale)
static int __CRTDECL __acrt_locale_get_ctype_array_value(_In_reads_(_Char_value+1) unsigned short const *const locale_pctype_array, _In_range_(-1, 255) int const c, _In_ int const mask)
int __cdecl _isctype(int const c, int const mask)
int __cdecl _isctype_l(int const c, int const mask, _locale_t const locale)
unsigned short const * _locale_pctype
__crt_locale_data_public _public
size_t const buffer_count