[MSVCRT] Add vista exports

This commit is contained in:
Timo Kreuzer 2020-09-09 19:18:27 +02:00
parent 767a975cf6
commit 3c1f6631e6
3 changed files with 1383 additions and 1 deletions

File diff suppressed because it is too large Load diff

View file

@ -88,3 +88,834 @@ unsigned long MSVCRT__outpd(
return _outpd(port, dataword);
}
#endif
typedef struct __crt_locale_data_public
{
unsigned short const* _locale_pctype;
_Field_range_(1, 2) int _locale_mb_cur_max;
unsigned int _locale_lc_codepage;
} __crt_locale_data_public;
__inline
__crt_locale_data_public*
__CRTDECL
__acrt_get_locale_data_prefix(
void const volatile* const _LocalePointers)
{
_locale_t const _TypedLocalePointers = (_locale_t)_LocalePointers;
return (__crt_locale_data_public*)_TypedLocalePointers->locinfo;
}
__inline
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
)
{
if (c >= -1 && c <= 255)
{
return locale_pctype_array[c] & mask;
}
return 0;
}
const unsigned short* __cdecl __pctype_func(void);
#if defined _CRT_DISABLE_PERFCRIT_LOCKS && !defined _DLL
#define __PCTYPE_FUNC _pctype
#else
#define __PCTYPE_FUNC __pctype_func()
#endif
#ifdef _DEBUG
_ACRTIMP int __cdecl _chvalidator(_In_ int c, _In_ int mask);
#define __chvalidchk(a, b) _chvalidator(a, b)
#else
#define __chvalidchk(a, b) (__acrt_locale_get_ctype_array_value(__PCTYPE_FUNC, (a), (b)))
#endif
__inline
int
__CRTDECL
_chvalidchk_l(
_In_ int const c,
_In_ int const mask,
_In_opt_ _locale_t const locale
)
{
#ifdef _DEBUG
return _chvalidator_l(locale, c, mask);
#else
if (locale)
{
return __acrt_locale_get_ctype_array_value(__acrt_get_locale_data_prefix(locale)->_locale_pctype, c, mask);
}
return __chvalidchk(c, mask);
#endif
}
__inline
int
__CRTDECL
_ischartype_l(
_In_ int const c,
_In_ int const mask,
_In_opt_ _locale_t const locale)
{
if (locale)
{
if (c >= -1 && c <= 255)
{
return __acrt_get_locale_data_prefix(locale)->_locale_pctype[c] & mask;
}
if (__acrt_get_locale_data_prefix(locale)->_locale_mb_cur_max > 1)
{
return _isctype_l(c, mask, locale);
}
return 0; // >0xFF and SBCS locale
}
return _chvalidchk_l(c, mask, 0);
}
//#undef _isalnum_l
_Check_return_
_CRTIMP
int
__cdecl
_isalnum_l(
_In_ int c,
_In_opt_ _locale_t locale)
{
return _ischartype_l(c, _ALPHA | _DIGIT, locale);
}
#undef _isalpha_l
_Check_return_
_CRTIMP
int
__cdecl
_isalpha_l(
_In_ int c,
_In_opt_ _locale_t locale)
{
return _ischartype_l(c, _ALPHA, locale);
}
#undef _iscntrl_l
_Check_return_
_CRTIMP
int
__cdecl
_iscntrl_l(
_In_ int c,
_In_opt_ _locale_t locale)
{
return _ischartype_l(c, _CONTROL, locale);
}
#undef _isdigit_l
_Check_return_
_CRTIMP
int
__cdecl
_isdigit_l(
_In_ int c,
_In_opt_ _locale_t locale)
{
return _ischartype_l(c, _DIGIT, locale);
}
#undef _isgraph_l
_Check_return_
_CRTIMP
int
__cdecl
_isgraph_l(
_In_ int c,
_In_opt_ _locale_t locale)
{
return _ischartype_l(c, _PUNCT | _ALPHA | _DIGIT, locale);
}
#undef _islower_l
_Check_return_
_CRTIMP
int
__cdecl
_islower_l(
_In_ int c,
_In_opt_ _locale_t locale)
{
return _ischartype_l(c, _LOWER, locale);
}
#undef _isprint_l
_Check_return_
_CRTIMP
int
__cdecl
_isprint_l(
_In_ int c,
_In_opt_ _locale_t locale)
{
return _ischartype_l(c, _BLANK | _PUNCT | _ALPHA | _DIGIT, locale);
}
#undef _isspace_l
_Check_return_
_CRTIMP
int
__cdecl
_isspace_l(
_In_ int c,
_In_opt_ _locale_t locale)
{
return _ischartype_l(c, _SPACE, locale);
}
#undef _isupper_l
_Check_return_
_CRTIMP
int
__cdecl
_isupper_l(
_In_ int c,
_In_opt_ _locale_t locale)
{
return _ischartype_l(c, _UPPER, locale);
}
#undef _iswalnum_l
_Check_return_
_CRTIMP
int
__cdecl
_iswalnum_l(
_In_ wint_t c,
_In_opt_ _locale_t locale)
{
return _iswctype_l(c, _ALPHA|_DIGIT, locale);
}
#undef _iswalpha_l
_Check_return_
_CRTIMP
int
__cdecl
_iswalpha_l(
_In_ wint_t c,
_In_opt_ _locale_t locale)
{
return _iswctype_l(c, _ALPHA, locale);
}
#undef _iswcntrl_l
_Check_return_
_CRTIMP
int
__cdecl
_iswcntrl_l(
_In_ wint_t c,
_In_opt_ _locale_t locale)
{
UNIMPLEMENTED;
return _iswctype_l(c, _CONTROL, locale);
}
_Check_return_
_CRTIMP
int
__cdecl
_iswctype_l(
_In_ wint_t c,
_In_ wctype_t type,
_In_opt_ _locale_t locale)
{
UNIMPLEMENTED;
return 0;
}
#undef _iswdigit_l
_Check_return_
_CRTIMP
int
__cdecl
_iswdigit_l(
_In_ wint_t c,
_In_opt_ _locale_t locale)
{
return _iswctype_l(c, _DIGIT, locale);
}
#undef _iswgraph_l
_Check_return_
_CRTIMP
int
__cdecl
_iswgraph_l(
_In_ wint_t c,
_In_opt_ _locale_t locale)
{
return _iswctype_l(c, _PUNCT | _ALPHA | _DIGIT, locale);
}
#undef _iswlower_l
_Check_return_
_CRTIMP
int
__cdecl
_iswlower_l(
_In_ wint_t c,
_In_opt_ _locale_t locale)
{
return _iswctype_l(c , _LOWER, locale);
}
#undef _iswprint_l
_Check_return_
_CRTIMP
int
__cdecl
_iswprint_l(
_In_ wint_t c,
_In_opt_ _locale_t locale)
{
return _iswctype_l(c, _BLANK | _PUNCT | _ALPHA | _DIGIT, locale);
}
#undef _iswpunct_l
_Check_return_
_CRTIMP
int
__cdecl
_iswpunct_l(
_In_ wint_t c,
_In_opt_ _locale_t locale)
{
return _iswctype_l(c, _PUNCT, locale);
}
#undef _iswspace_l
_Check_return_
_CRTIMP
int
__cdecl
_iswspace_l(
_In_ wint_t c,
_In_opt_ _locale_t locale)
{
return _iswctype_l(c, _SPACE, locale);
}
#undef _iswupper_l
_Check_return_
_CRTIMP
int
__cdecl
_iswupper_l(
_In_ wint_t c,
_In_opt_ _locale_t locale)
{
return _iswctype_l(c, _UPPER, locale);
}
#undef _iswxdigit_l
_Check_return_
_CRTIMP
int
__cdecl
_iswxdigit_l(
_In_ wint_t c,
_In_opt_ _locale_t locale)
{
return _iswctype_l(c, _HEX, locale);
}
#undef _isxdigit_l
_Check_return_
_CRTIMP
int
__cdecl
_isxdigit_l(
_In_ int c,
_In_opt_ _locale_t locale)
{
return _ischartype_l(c, _HEX, locale);
}
_Must_inspect_result_
_CRTIMP
int
__cdecl
_memicmp_l(
_In_reads_bytes_opt_(size) const void *buf1,
_In_reads_bytes_opt_(size) const void *buf2,
_In_ size_t size,
_In_opt_ _locale_t locale)
{
UNIMPLEMENTED;
return 0;
}
_Check_return_
_CRTIMP
int
__cdecl
_strcoll_l(
_In_z_ const char *str1,
_In_z_ const char *str2,
_In_opt_ _locale_t locale)
{
UNIMPLEMENTED;
return 0;
}
_Check_return_
_CRTIMP
int
__cdecl
_stricmp_l(
_In_z_ const char *str1,
_In_z_ const char *str2,
_In_opt_ _locale_t locale)
{
UNIMPLEMENTED;
return 0;
}
_Check_return_
_CRTIMP
int
__cdecl
_stricoll_l(
_In_z_ const char *str1,
_In_z_ const char *str2,
_In_opt_ _locale_t locale)
{
UNIMPLEMENTED;
return 0;
}
_Check_return_wat_
_CRTIMP
errno_t
__cdecl
_strlwr_s(
_Inout_updates_z_(size) char *str,
_In_ size_t size)
{
UNIMPLEMENTED;
return 0;
}
_Check_return_wat_
_CRTIMP
errno_t
__cdecl
_strlwr_s_l(
_Inout_updates_z_(size) char *str,
_In_ size_t size,
_In_opt_ _locale_t locale)
{
UNIMPLEMENTED;
return 0;
}
_Check_return_
_CRTIMP
int
__cdecl
_strncoll_l(
_In_z_ const char *str1,
_In_z_ const char *str2,
_In_ size_t maxcount,
_In_opt_ _locale_t locale)
{
UNIMPLEMENTED;
return 0;
}
_Check_return_
_CRTIMP
int
__cdecl
_strnicmp_l(
_In_reads_or_z_(maxcount) const char *str1,
_In_reads_or_z_(maxcount) const char *str2,
_In_ size_t maxcount,
_In_opt_ _locale_t locale)
{
UNIMPLEMENTED;
return 0;
}
_Check_return_
_CRTIMP
int
__cdecl
_strnicoll_l(
_In_z_ const char *str1,
_In_z_ const char *str2,
_In_ size_t maxcount,
_In_opt_ _locale_t locale)
{
UNIMPLEMENTED;
return 0;
}
_Check_return_wat_
_CRTIMP
errno_t
__cdecl
_strnset_s(
_Inout_updates_z_(size) char *str,
_In_ size_t size,
_In_ int val,
_In_ size_t _MaxCount)
{
UNIMPLEMENTED;
return 0;
}
_CRTIMP
char*
_strupr_l(
char *str,
_locale_t locale)
{
UNIMPLEMENTED;
return 0;
}
_Check_return_
_CRTIMP
wint_t
__cdecl
_towlower_l(
_In_ wint_t c,
_In_opt_ _locale_t locale)
{
UNIMPLEMENTED;
return 0;
}
_Check_return_
_CRTIMP
wint_t
__cdecl
_towupper_l(
_In_ wint_t c,
_In_opt_ _locale_t locale)
{
UNIMPLEMENTED;
return 0;
}
_CRTIMP
wchar_t*
_wcslwr_l(
wchar_t *str,
_locale_t locale)
{
UNIMPLEMENTED;
return 0;
}
_CRTIMP
wchar_t*
_wcsupr_l(
wchar_t *str,
_locale_t locale)
{
UNIMPLEMENTED;
return 0;
}
_Check_return_opt_
_CRTIMP
size_t
__cdecl
_wcsxfrm_l(
_Out_writes_opt_(maxcount) _Post_maybez_ wchar_t *dst,
_In_z_ const wchar_t *src,
_In_ size_t maxcount,
_In_opt_ _locale_t locale)
{
UNIMPLEMENTED;
return 0;
}
_Check_return_wat_
_CRTIMP
errno_t
__cdecl
_strset_s(
_Inout_updates_z_(size) char *dst,
_In_ size_t size,
_In_ int val)
{
UNIMPLEMENTED;
return 0;
}
_Check_return_wat_
_CRTIMP
errno_t
__cdecl
_strupr_s(
_Inout_updates_z_(size) char *str,
_In_ size_t size)
{
return _strupr_s_l(str, size, 0);
}
_Check_return_wat_
_CRTIMP
errno_t
__cdecl
_strupr_s_l(
_Inout_updates_z_(_Size) char *str,
_In_ size_t size,
_locale_t locale)
{
UNIMPLEMENTED;
return ENOTSUP;
}
_Check_return_
_CRTIMP
int
__cdecl
_tolower_l(
_In_ int c,
_In_opt_ _locale_t locale)
{
UNIMPLEMENTED;
return 0;
}
_Check_return_
_CRTIMP
int
__cdecl
_toupper_l(
_In_ int c,
_In_opt_ _locale_t locale)
{
UNIMPLEMENTED;
return 0;
}
_Check_return_
_CRTIMP
int
__cdecl
_wcscoll_l(
_In_z_ const wchar_t *str1,
_In_z_ const wchar_t *str2,
_In_opt_ _locale_t locale)
{
UNIMPLEMENTED;
return 0;
}
_Check_return_
_CRTIMP
int
__cdecl
_wcsicmp_l(
_In_z_ const wchar_t *str1,
_In_z_ const wchar_t *str2,
_In_opt_ _locale_t locale)
{
UNIMPLEMENTED;
return 0;
}
_Check_return_
_CRTIMP
int
__cdecl
_wcsicoll_l(
_In_z_ const wchar_t *str1,
_In_z_ const wchar_t *str2,
_In_opt_ _locale_t locale)
{
UNIMPLEMENTED;
return 0;
}
_Check_return_wat_
_CRTIMP
errno_t
__cdecl
_wcslwr_s(
_Inout_updates_z_(sizeInWords) wchar_t *str,
_In_ size_t sizeInWords)
{
return _wcslwr_s_l(str, sizeInWords, NULL);
}
_Check_return_wat_
_CRTIMP
errno_t
__cdecl
_wcslwr_s_l(
_Inout_updates_z_(sizeInWords) wchar_t *str,
_In_ size_t sizeInWords,
_In_opt_ _locale_t locale)
{
UNIMPLEMENTED;
return ENOTSUP;
}
typedef size_t rsize_t;
_Check_return_wat_
_CRTIMP // _ACRTIMP
errno_t
__cdecl
strncat_s(
_Inout_updates_z_(size) char* dest,
_In_ rsize_t size,
_In_reads_or_z_(maxCount) char const* src,
_In_ rsize_t maxCount)
{
UNIMPLEMENTED;
return ENOTSUP;
}
_Check_return_opt_
_CRTIMP
_CRT_INSECURE_DEPRECATE(vsnprintf_s)
int
__cdecl
vsnprintf_(
_Out_writes_(maxCount) char *dst,
_In_ size_t maxCount,
_In_z_ _Printf_format_string_ const char *format,
va_list argptr)
{
UNIMPLEMENTED;
return 0;
}
_Check_return_
_CRTIMP
int
__cdecl
_wcsnicoll_l(
_In_z_ const wchar_t *str1,
_In_z_ const wchar_t *str2,
_In_ size_t maxCount,
_In_opt_ _locale_t locale)
{
UNIMPLEMENTED;
return 0;
}
_Check_return_
_CRTIMP
int
__cdecl
_wcsnicmp_l(
_In_reads_or_z_(_MaxCount) const wchar_t *str1,
_In_reads_or_z_(_MaxCount) const wchar_t *str2,
_In_ size_t maxCount,
_In_opt_ _locale_t locale)
{
UNIMPLEMENTED;
return 0;
}
_Check_return_
_CRTIMP
int
__cdecl
_wcsncoll_l(
_In_z_ const wchar_t *str1,
_In_z_ const wchar_t *str2,
_In_ size_t maxCount,
_In_opt_ _locale_t locale)
{
UNIMPLEMENTED;
return 0;
}
_Check_return_wat_
_CRTIMP
errno_t
__cdecl
_strerror_s(
_Out_writes_z_(_SizeInBytes) char *buf,
_In_ size_t sizeInBytes,
_In_opt_z_ const char *errMsg)
{
UNIMPLEMENTED;
return 0;
}
_Check_return_wat_
_CRTIMP
errno_t
__cdecl
_wcsnset_s(
_Inout_updates_z_(_DstSizeInWords) wchar_t *dst,
_In_ size_t sizeInWords,
_In_ wchar_t val,
_In_ size_t maxCount)
{
UNIMPLEMENTED;
return 0;
}
_Check_return_wat_
_CRTIMP
errno_t
__cdecl
_wcsset_s(
_Inout_updates_z_(_SizeInWords) wchar_t *str,
_In_ size_t sizeInWords,
_In_ wchar_t val)
{
UNIMPLEMENTED;
return 0;
}
_Check_return_wat_
_CRTIMP
errno_t
__cdecl
_wcsupr_s_l(
_Inout_updates_z_(_Size) wchar_t *str,
_In_ size_t size,
_In_opt_ _locale_t locale)
{
UNIMPLEMENTED;
return 0;
}
_Check_return_opt_
_CRTIMP
_CRT_INSECURE_DEPRECATE(vsnprintf_s)
int
__cdecl
vsnprintf(
_Out_writes_(_MaxCount) char *dest,
_In_ size_t maxCount,
_In_z_ _Printf_format_string_ const char *format,
va_list argptr)
{
UNIMPLEMENTED;
return 0;
}

View file

@ -292,7 +292,7 @@ list(APPEND CRT_SOURCE
string/strtod.c
string/strtoi64.c
string/strtok.c
#string/strtok_s.c
string/strtok_s.c
string/strtol.c
string/strtoul.c
string/strtoull.c