From aebe1c69f9a7e41fbc005365737a00aaa238a332 Mon Sep 17 00:00:00 2001 From: Piotr Caban Date: Mon, 19 May 2014 11:42:58 +0200 Subject: [PATCH] msvcrt: Add _mbsnbcpy_s_l implementation. --- dlls/msvcr100/msvcr100.spec | 2 +- dlls/msvcr110/msvcr110.spec | 2 +- dlls/msvcr80/msvcr80.spec | 2 +- dlls/msvcr90/msvcr90.spec | 2 +- dlls/msvcrt/mbcs.c | 15 ++++++++++++--- dlls/msvcrt/msvcrt.spec | 2 +- 6 files changed, 17 insertions(+), 8 deletions(-) diff --git a/dlls/msvcr100/msvcr100.spec b/dlls/msvcr100/msvcr100.spec index 07d50fc91c4..4d577e7d40a 100644 --- a/dlls/msvcr100/msvcr100.spec +++ b/dlls/msvcr100/msvcr100.spec @@ -1132,7 +1132,7 @@ @ cdecl _mbsnbcpy(ptr str long) @ stub _mbsnbcpy_l @ cdecl _mbsnbcpy_s(ptr long str long) -@ stub _mbsnbcpy_s_l +@ cdecl _mbsnbcpy_s_l(ptr long str long ptr) @ cdecl _mbsnbicmp(str str long) @ stub _mbsnbicmp_l @ cdecl _mbsnbicoll(str str long) diff --git a/dlls/msvcr110/msvcr110.spec b/dlls/msvcr110/msvcr110.spec index e6576e00e25..b2141d69834 100644 --- a/dlls/msvcr110/msvcr110.spec +++ b/dlls/msvcr110/msvcr110.spec @@ -1490,7 +1490,7 @@ @ cdecl _mbsnbcpy(ptr str long) @ stub _mbsnbcpy_l @ cdecl _mbsnbcpy_s(ptr long str long) -@ stub _mbsnbcpy_s_l +@ cdecl _mbsnbcpy_s_l(ptr long str long ptr) @ cdecl _mbsnbicmp(str str long) @ stub _mbsnbicmp_l @ cdecl _mbsnbicoll(str str long) diff --git a/dlls/msvcr80/msvcr80.spec b/dlls/msvcr80/msvcr80.spec index 9c7f85b38fe..b510e76f172 100644 --- a/dlls/msvcr80/msvcr80.spec +++ b/dlls/msvcr80/msvcr80.spec @@ -804,7 +804,7 @@ @ cdecl _mbsnbcpy(ptr str long) @ stub _mbsnbcpy_l @ cdecl _mbsnbcpy_s(ptr long str long) -@ stub _mbsnbcpy_s_l +@ cdecl _mbsnbcpy_s_l(ptr long str long ptr) @ cdecl _mbsnbicmp(str str long) @ stub _mbsnbicmp_l @ cdecl _mbsnbicoll(str str long) diff --git a/dlls/msvcr90/msvcr90.spec b/dlls/msvcr90/msvcr90.spec index e86541c0373..345afe9fa50 100644 --- a/dlls/msvcr90/msvcr90.spec +++ b/dlls/msvcr90/msvcr90.spec @@ -782,7 +782,7 @@ @ cdecl _mbsnbcpy(ptr str long) @ stub _mbsnbcpy_l @ cdecl _mbsnbcpy_s(ptr long str long) -@ stub _mbsnbcpy_s_l +@ cdecl _mbsnbcpy_s_l(ptr long str long ptr) @ cdecl _mbsnbicmp(str str long) @ stub _mbsnbicmp_l @ cdecl _mbsnbicoll(str str long) diff --git a/dlls/msvcrt/mbcs.c b/dlls/msvcrt/mbcs.c index dd14abd336b..3f4590e579d 100644 --- a/dlls/msvcrt/mbcs.c +++ b/dlls/msvcrt/mbcs.c @@ -638,12 +638,13 @@ unsigned char* CDECL _mbsncpy(unsigned char* dst, const unsigned char* src, MSVC } /********************************************************************* - * _mbsnbcpy_s(MSVCRT.@) + * _mbsnbcpy_s_l(MSVCRT.@) * REMARKS * Unlike _mbsnbcpy this function does not pad the rest of the dest * string with 0 */ -int CDECL _mbsnbcpy_s(unsigned char* dst, MSVCRT_size_t size, const unsigned char* src, MSVCRT_size_t n) +int CDECL _mbsnbcpy_s_l(unsigned char* dst, MSVCRT_size_t size, + const unsigned char* src, MSVCRT_size_t n, MSVCRT__locale_t locale) { MSVCRT_size_t pos = 0; @@ -657,7 +658,7 @@ int CDECL _mbsnbcpy_s(unsigned char* dst, MSVCRT_size_t size, const unsigned cha if(!n) return 0; - if(get_mbcinfo()->ismbcodepage) + if((locale ? locale->mbcinfo : get_mbcinfo())->ismbcodepage) { int is_lead = 0; while (*src && n) @@ -702,6 +703,14 @@ int CDECL _mbsnbcpy_s(unsigned char* dst, MSVCRT_size_t size, const unsigned cha return 0; } +/********************************************************************* + * _mbsnbcpy_s(MSVCRT.@) + */ +int CDECL _mbsnbcpy_s(unsigned char* dst, MSVCRT_size_t size, const unsigned char* src, MSVCRT_size_t n) +{ + return _mbsnbcpy_s_l(dst, size, src, n, NULL); +} + /********************************************************************* * _mbsnbcpy(MSVCRT.@) * REMARKS diff --git a/dlls/msvcrt/msvcrt.spec b/dlls/msvcrt/msvcrt.spec index a7d1a973dfb..086bd82de80 100644 --- a/dlls/msvcrt/msvcrt.spec +++ b/dlls/msvcrt/msvcrt.spec @@ -755,7 +755,7 @@ @ cdecl _mbsnbcpy(ptr str long) # stub _mbsnbcpy_l(ptr str long ptr) @ cdecl _mbsnbcpy_s(ptr long str long) -# stub _mbsnbcpy_s_l(ptr long str long ptr) +@ cdecl _mbsnbcpy_s_l(ptr long str long ptr) @ cdecl _mbsnbicmp(str str long) # stub _mbsnbicmp_l(str str long ptr) @ cdecl _mbsnbicoll(str str long)