Module: wine Branch: master Commit: aebe1c69f9a7e41fbc005365737a00aaa238a332 URL: http://source.winehq.org/git/wine.git/?a=commit;h=aebe1c69f9a7e41fbc00536573...
Author: Piotr Caban piotr@codeweavers.com Date: Mon May 19 11:42:58 2014 +0200
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 07d50fc..4d577e7 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 e6576e0..b2141d6 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 9c7f85b..b510e76 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 e86541c..345afe9 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 dd14abd..3f4590e 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) @@ -703,6 +704,14 @@ int CDECL _mbsnbcpy_s(unsigned char* dst, MSVCRT_size_t size, const unsigned cha }
/********************************************************************* + * _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 * Like strncpy this function doesn't enforce the string to be diff --git a/dlls/msvcrt/msvcrt.spec b/dlls/msvcrt/msvcrt.spec index a7d1a97..086bd82 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)