From: Bartosz Kosiorek gang65@poczta.onet.pl
--- dlls/msvcr100/msvcr100.spec | 2 +- dlls/msvcr110/msvcr110.spec | 2 +- dlls/msvcr120/msvcr120.spec | 2 +- dlls/msvcr80/msvcr80.spec | 2 +- dlls/msvcr90/msvcr90.spec | 2 +- dlls/msvcrt/mbcs.c | 17 ++++++++++++++--- dlls/msvcrt/msvcrt.spec | 2 +- dlls/ucrtbase/ucrtbase.spec | 4 ++-- 8 files changed, 22 insertions(+), 11 deletions(-)
diff --git a/dlls/msvcr100/msvcr100.spec b/dlls/msvcr100/msvcr100.spec index 8f24047e8b5..54f988ee9cd 100644 --- a/dlls/msvcr100/msvcr100.spec +++ b/dlls/msvcr100/msvcr100.spec @@ -1009,7 +1009,7 @@ @ cdecl _ismbslead(ptr ptr) @ cdecl _ismbslead_l(ptr ptr ptr) @ cdecl _ismbstrail(ptr ptr) -@ stub _ismbstrail_l(ptr ptr ptr) +@ cdecl _ismbstrail_l(ptr ptr ptr) @ cdecl _isnan(double) @ cdecl -arch=x86_64 _isnanf(float) @ cdecl _isprint_l(long ptr) diff --git a/dlls/msvcr110/msvcr110.spec b/dlls/msvcr110/msvcr110.spec index 160dce837d9..d84a88ea50b 100644 --- a/dlls/msvcr110/msvcr110.spec +++ b/dlls/msvcr110/msvcr110.spec @@ -1355,7 +1355,7 @@ @ cdecl _ismbslead(ptr ptr) @ cdecl _ismbslead_l(ptr ptr ptr) @ cdecl _ismbstrail(ptr ptr) -@ stub _ismbstrail_l +@ cdecl _ismbstrail_l(ptr ptr ptr) @ cdecl _isnan(double) @ cdecl -arch=x86_64 _isnanf(float) @ cdecl _isprint_l(long ptr) diff --git a/dlls/msvcr120/msvcr120.spec b/dlls/msvcr120/msvcr120.spec index 268c6db59d7..5c65b082309 100644 --- a/dlls/msvcr120/msvcr120.spec +++ b/dlls/msvcr120/msvcr120.spec @@ -1361,7 +1361,7 @@ @ cdecl _ismbslead(ptr ptr) @ cdecl _ismbslead_l(ptr ptr ptr) @ cdecl _ismbstrail(ptr ptr) -@ stub _ismbstrail_l +@ cdecl _ismbstrail_l(ptr ptr ptr) @ cdecl _isnan(double) @ cdecl -arch=x86_64 _isnanf(float) @ cdecl _isprint_l(long ptr) diff --git a/dlls/msvcr80/msvcr80.spec b/dlls/msvcr80/msvcr80.spec index cafb0a8f644..4f3425acc35 100644 --- a/dlls/msvcr80/msvcr80.spec +++ b/dlls/msvcr80/msvcr80.spec @@ -681,7 +681,7 @@ @ cdecl _ismbslead(ptr ptr) @ cdecl _ismbslead_l(ptr ptr ptr) @ cdecl _ismbstrail(ptr ptr) -@ stub _ismbstrail_l +@ cdecl _ismbstrail_l(ptr ptr ptr) @ cdecl _isnan(double) @ cdecl -arch=x86_64 _isnanf(float) @ cdecl _isprint_l(long ptr) diff --git a/dlls/msvcr90/msvcr90.spec b/dlls/msvcr90/msvcr90.spec index 2773762b176..4e26468b489 100644 --- a/dlls/msvcr90/msvcr90.spec +++ b/dlls/msvcr90/msvcr90.spec @@ -659,7 +659,7 @@ @ cdecl _ismbslead(ptr ptr) @ cdecl _ismbslead_l(ptr ptr ptr) @ cdecl _ismbstrail(ptr ptr) -@ stub _ismbstrail_l +@ cdecl _ismbstrail_l(ptr ptr ptr) @ cdecl _isnan(double) @ cdecl -arch=x86_64 _isnanf(float) @ cdecl _isprint_l(long ptr) diff --git a/dlls/msvcrt/mbcs.c b/dlls/msvcrt/mbcs.c index 0e6e0bdcc7f..bdcfea3b01a 100644 --- a/dlls/msvcrt/mbcs.c +++ b/dlls/msvcrt/mbcs.c @@ -1848,17 +1848,28 @@ int CDECL _ismbslead(const unsigned char* start, const unsigned char* str) }
/********************************************************************* - * _ismbstrail(MSVCRT.@) + * _ismbstrail_l(MSVCRT.@) */ -int CDECL _ismbstrail(const unsigned char* start, const unsigned char* str) +int CDECL _ismbstrail_l(const unsigned char* start, const unsigned char* str, _locale_t locale) { + if (!MSVCRT_CHECK_PMT(start && str)) + return 0; + /* Note: this function doesn't check _ismbbtrail */ - if ((str > start) && _ismbslead(start, str-1)) + if ((str > start) && _ismbslead_l(start, str-1, locale)) return -1; else return 0; }
+/********************************************************************* + * _ismbstrail(MSVCRT.@) + */ +int CDECL _ismbstrail(const unsigned char* start, const unsigned char* str) +{ + return _ismbstrail_l(start, str, NULL); +} + /********************************************************************* * _mbbtype_l(MSVCRT.@) */ diff --git a/dlls/msvcrt/msvcrt.spec b/dlls/msvcrt/msvcrt.spec index ae70c2619b6..156216ae715 100644 --- a/dlls/msvcrt/msvcrt.spec +++ b/dlls/msvcrt/msvcrt.spec @@ -630,7 +630,7 @@ @ cdecl _ismbslead(ptr ptr) @ cdecl _ismbslead_l(ptr ptr ptr) @ cdecl _ismbstrail(ptr ptr) -# stub _ismbstrail_l(long ptr) +@ cdecl _ismbstrail_l(ptr ptr ptr) @ cdecl _isnan(double) @ cdecl -arch=x86_64 _isnanf(float) @ cdecl _isprint_l(long ptr) diff --git a/dlls/ucrtbase/ucrtbase.spec b/dlls/ucrtbase/ucrtbase.spec index 4d0e69fc57b..805ccc908f7 100644 --- a/dlls/ucrtbase/ucrtbase.spec +++ b/dlls/ucrtbase/ucrtbase.spec @@ -501,7 +501,7 @@ @ cdecl _ismbslead(ptr ptr) @ cdecl _ismbslead_l(ptr ptr ptr) @ cdecl _ismbstrail(ptr ptr) -@ stub _ismbstrail_l +@ cdecl _ismbstrail_l(ptr ptr ptr) @ cdecl _isnan(double) @ cdecl -arch=x86_64 _isnanf(float) @ cdecl _isprint_l(long ptr) @@ -1100,7 +1100,7 @@ @ cdecl _o__ismbslead(ptr ptr) _ismbslead @ cdecl _o__ismbslead_l(ptr ptr ptr) _ismbslead_l @ cdecl _o__ismbstrail(ptr ptr) _ismbstrail -@ stub _o__ismbstrail_l +@ cdecl _o__ismbstrail_l(ptr ptr ptr) _ismbstrail_l @ cdecl _o__iswctype_l(long long ptr) _iswctype_l @ cdecl _o__itoa(long ptr long) _itoa @ cdecl _o__itoa_s(long ptr long long) _itoa_s