From de8e6b6a283f3f0148d8195c33964632921fa1ba Mon Sep 17 00:00:00 2001 From: Piotr Caban Date: Mon, 28 Oct 2019 13:29:05 +0100 Subject: [PATCH] msvcrt: Add _mbsspn_l implementation. Signed-off-by: Piotr Caban Signed-off-by: Alexandre Julliard --- .../api-ms-win-crt-multibyte-l1-1-0.spec | 2 +- 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 | 16 ++++++++++++---- dlls/msvcrt/msvcrt.spec | 2 +- dlls/ucrtbase/ucrtbase.spec | 2 +- 9 files changed, 20 insertions(+), 12 deletions(-) diff --git a/dlls/api-ms-win-crt-multibyte-l1-1-0/api-ms-win-crt-multibyte-l1-1-0.spec b/dlls/api-ms-win-crt-multibyte-l1-1-0/api-ms-win-crt-multibyte-l1-1-0.spec index 3f60bb41620..059e366aea9 100644 --- a/dlls/api-ms-win-crt-multibyte-l1-1-0/api-ms-win-crt-multibyte-l1-1-0.spec +++ b/dlls/api-ms-win-crt-multibyte-l1-1-0/api-ms-win-crt-multibyte-l1-1-0.spec @@ -178,7 +178,7 @@ @ stub _mbsset_s @ stub _mbsset_s_l @ cdecl _mbsspn(str str) ucrtbase._mbsspn -@ stub _mbsspn_l +@ cdecl _mbsspn_l(str str ptr) ucrtbase._mbsspn_l @ cdecl _mbsspnp(str str) ucrtbase._mbsspnp @ stub _mbsspnp_l @ cdecl _mbsstr(str str) ucrtbase._mbsstr diff --git a/dlls/msvcr100/msvcr100.spec b/dlls/msvcr100/msvcr100.spec index f3647ea2674..b59e8cf5cca 100644 --- a/dlls/msvcr100/msvcr100.spec +++ b/dlls/msvcr100/msvcr100.spec @@ -1184,7 +1184,7 @@ @ stub _mbsset_s @ stub _mbsset_s_l @ cdecl _mbsspn(str str) -@ stub _mbsspn_l +@ cdecl _mbsspn_l(str str ptr) @ cdecl _mbsspnp(str str) @ stub _mbsspnp_l @ cdecl _mbsstr(str str) diff --git a/dlls/msvcr110/msvcr110.spec b/dlls/msvcr110/msvcr110.spec index 343f2bd3c90..06970299628 100644 --- a/dlls/msvcr110/msvcr110.spec +++ b/dlls/msvcr110/msvcr110.spec @@ -1541,7 +1541,7 @@ @ stub _mbsset_s @ stub _mbsset_s_l @ cdecl _mbsspn(str str) -@ stub _mbsspn_l +@ cdecl _mbsspn_l(str str ptr) @ cdecl _mbsspnp(str str) @ stub _mbsspnp_l @ cdecl _mbsstr(str str) diff --git a/dlls/msvcr120/msvcr120.spec b/dlls/msvcr120/msvcr120.spec index 9938b1ff46b..07ce01c90e1 100644 --- a/dlls/msvcr120/msvcr120.spec +++ b/dlls/msvcr120/msvcr120.spec @@ -1551,7 +1551,7 @@ @ stub _mbsset_s @ stub _mbsset_s_l @ cdecl _mbsspn(str str) -@ stub _mbsspn_l +@ cdecl _mbsspn_l(str str ptr) @ cdecl _mbsspnp(str str) @ stub _mbsspnp_l @ cdecl _mbsstr(str str) diff --git a/dlls/msvcr80/msvcr80.spec b/dlls/msvcr80/msvcr80.spec index 8e59d320f0e..1e03b4d4d90 100644 --- a/dlls/msvcr80/msvcr80.spec +++ b/dlls/msvcr80/msvcr80.spec @@ -856,7 +856,7 @@ @ stub _mbsset_s @ stub _mbsset_s_l @ cdecl _mbsspn(str str) -@ stub _mbsspn_l +@ cdecl _mbsspn_l(str str ptr) @ cdecl _mbsspnp(str str) @ stub _mbsspnp_l @ cdecl _mbsstr(str str) diff --git a/dlls/msvcr90/msvcr90.spec b/dlls/msvcr90/msvcr90.spec index 5e8fba1c87a..a8369cb6c60 100644 --- a/dlls/msvcr90/msvcr90.spec +++ b/dlls/msvcr90/msvcr90.spec @@ -834,7 +834,7 @@ @ stub _mbsset_s @ stub _mbsset_s_l @ cdecl _mbsspn(str str) -@ stub _mbsspn_l +@ cdecl _mbsspn_l(str str ptr) @ cdecl _mbsspnp(str str) @ stub _mbsspnp_l @ cdecl _mbsstr(str str) diff --git a/dlls/msvcrt/mbcs.c b/dlls/msvcrt/mbcs.c index fe47e55eae5..ce98749e9fd 100644 --- a/dlls/msvcrt/mbcs.c +++ b/dlls/msvcrt/mbcs.c @@ -2021,11 +2021,11 @@ int CDECL _mbsupr_s(unsigned char* s, MSVCRT_size_t len) return 0; } - /********************************************************************* - * _mbsspn (MSVCRT.@) + * _mbsspn_l (MSVCRT.@) */ -MSVCRT_size_t CDECL _mbsspn(const unsigned char* string, const unsigned char* set) +MSVCRT_size_t CDECL _mbsspn_l(const unsigned char* string, + const unsigned char* set, MSVCRT__locale_t locale) { const unsigned char *p, *q; @@ -2033,7 +2033,7 @@ MSVCRT_size_t CDECL _mbsspn(const unsigned char* string, const unsigned char* se { for (q = set; *q; q++) { - if (_ismbblead(*q)) + if (_ismbblead_l(*q, locale)) { /* duplicate a bug in native implementation */ if (!q[1]) break; @@ -2055,6 +2055,14 @@ MSVCRT_size_t CDECL _mbsspn(const unsigned char* string, const unsigned char* se return p - string; } +/********************************************************************* + * _mbsspn (MSVCRT.@) + */ +MSVCRT_size_t CDECL _mbsspn(const unsigned char* string, const unsigned char* set) +{ + return _mbsspn_l(string, set, NULL); +} + /********************************************************************* * _mbsspnp (MSVCRT.@) */ diff --git a/dlls/msvcrt/msvcrt.spec b/dlls/msvcrt/msvcrt.spec index 2d9f273df90..e4fad75c187 100644 --- a/dlls/msvcrt/msvcrt.spec +++ b/dlls/msvcrt/msvcrt.spec @@ -802,7 +802,7 @@ # stub _mbsset_s(ptr long long) # stub _mbsset_s_l(ptr long long ptr) @ cdecl _mbsspn(str str) -# stub _mbsspn_l(str str ptr) +@ cdecl _mbsspn_l(str str ptr) @ cdecl _mbsspnp(str str) # stub _mbsspnp_l(str str ptr) @ cdecl _mbsstr(str str) diff --git a/dlls/ucrtbase/ucrtbase.spec b/dlls/ucrtbase/ucrtbase.spec index fc391b8d810..7dfa9147d74 100644 --- a/dlls/ucrtbase/ucrtbase.spec +++ b/dlls/ucrtbase/ucrtbase.spec @@ -697,7 +697,7 @@ @ stub _mbsset_s @ stub _mbsset_s_l @ cdecl _mbsspn(str str) -@ stub _mbsspn_l +@ cdecl _mbsspn_l(str str ptr) @ cdecl _mbsspnp(str str) @ stub _mbsspnp_l @ cdecl _mbsstr(str str)