From: Bartosz Kosiorek gang65@poczta.onet.pl
--- 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 | 2 +- 7 files changed, 20 insertions(+), 9 deletions(-)
diff --git a/dlls/msvcr110/msvcr110.spec b/dlls/msvcr110/msvcr110.spec index a27a4487608..38ba278af40 100644 --- a/dlls/msvcr110/msvcr110.spec +++ b/dlls/msvcr110/msvcr110.spec @@ -1355,7 +1355,7 @@ @ cdecl _ismbslead(ptr ptr) @ stub _ismbslead_l @ 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 cb673976e61..7cf69829d3c 100644 --- a/dlls/msvcr120/msvcr120.spec +++ b/dlls/msvcr120/msvcr120.spec @@ -1361,7 +1361,7 @@ @ cdecl _ismbslead(ptr ptr) @ stub _ismbslead_l @ 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 ca32dac7285..c6803e74b39 100644 --- a/dlls/msvcr80/msvcr80.spec +++ b/dlls/msvcr80/msvcr80.spec @@ -681,7 +681,7 @@ @ cdecl _ismbslead(ptr ptr) @ stub _ismbslead_l @ 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 ce0ddfb6168..cea6e28b8f3 100644 --- a/dlls/msvcr90/msvcr90.spec +++ b/dlls/msvcr90/msvcr90.spec @@ -659,7 +659,7 @@ @ cdecl _ismbslead(ptr ptr) @ stub _ismbslead_l @ 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 a69b79e7d2c..552d7d992b4 100644 --- a/dlls/msvcrt/mbcs.c +++ b/dlls/msvcrt/mbcs.c @@ -1829,17 +1829,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 NULL; + /* 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 c74decb997d..517c892592b 100644 --- a/dlls/msvcrt/msvcrt.spec +++ b/dlls/msvcrt/msvcrt.spec @@ -630,7 +630,7 @@ @ cdecl _ismbslead(ptr ptr) # stub _ismbslead_l(long 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 78e4caf1479..f4ee96403cc 100644 --- a/dlls/ucrtbase/ucrtbase.spec +++ b/dlls/ucrtbase/ucrtbase.spec @@ -501,7 +501,7 @@ @ cdecl _ismbslead(ptr ptr) @ stub _ismbslead_l @ 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)