Module: wine Branch: master Commit: 31c76cae7c0322d4a235ea57843c73210882a32c URL: http://source.winehq.org/git/wine.git/?a=commit;h=31c76cae7c0322d4a235ea5784...
Author: Piotr Caban piotr@codeweavers.com Date: Thu May 22 12:58:50 2014 +0200
msvcrt: Add _wcslwr_s_l implementation.
---
dlls/msvcr100/msvcr100.spec | 6 +++--- dlls/msvcr110/msvcr110.spec | 6 +++--- dlls/msvcr70/msvcr70.spec | 2 +- dlls/msvcr71/msvcr71.spec | 2 +- dlls/msvcr80/msvcr80.spec | 6 +++--- dlls/msvcr90/msvcr90.spec | 6 +++--- dlls/msvcrt/msvcrt.spec | 6 +++--- dlls/msvcrt/wcs.c | 28 ++++++++++++++++++++++++++-- 8 files changed, 43 insertions(+), 19 deletions(-)
diff --git a/dlls/msvcr100/msvcr100.spec b/dlls/msvcr100/msvcr100.spec index 581ff17..ed40b65 100644 --- a/dlls/msvcr100/msvcr100.spec +++ b/dlls/msvcr100/msvcr100.spec @@ -1490,10 +1490,10 @@ @ cdecl _wcsicmp_l(wstr wstr ptr) MSVCRT__wcsicmp_l @ cdecl _wcsicoll(wstr wstr) MSVCRT__wcsicoll @ cdecl _wcsicoll_l(wstr wstr ptr) MSVCRT__wcsicoll_l -@ cdecl _wcslwr(wstr) ntdll._wcslwr -@ stub _wcslwr_l +@ cdecl _wcslwr(wstr) MSVCRT__wcslwr +@ cdecl _wcslwr_l(wstr ptr) MSVCRT__wcslwr_l @ cdecl _wcslwr_s(wstr long) MSVCRT__wcslwr_s -@ stub _wcslwr_s_l +@ cdecl _wcslwr_s_l(wstr long ptr) MSVCRT__wcslwr_s_l @ cdecl _wcsncoll(wstr wstr long) MSVCRT__wcsncoll @ cdecl _wcsncoll_l(wstr wstr long ptr) MSVCRT__wcsncoll_l @ cdecl _wcsnicmp(wstr wstr long) MSVCRT__wcsnicmp diff --git a/dlls/msvcr110/msvcr110.spec b/dlls/msvcr110/msvcr110.spec index 9973aa0..8af410c 100644 --- a/dlls/msvcr110/msvcr110.spec +++ b/dlls/msvcr110/msvcr110.spec @@ -1849,10 +1849,10 @@ @ cdecl _wcsicmp_l(wstr wstr ptr) MSVCRT__wcsicmp_l @ cdecl _wcsicoll(wstr wstr) MSVCRT__wcsicoll @ cdecl _wcsicoll_l(wstr wstr ptr) MSVCRT__wcsicoll_l -@ cdecl _wcslwr(wstr) ntdll._wcslwr -@ stub _wcslwr_l +@ cdecl _wcslwr(wstr) MSVCRT__wcslwr +@ cdecl _wcslwr_l(wstr ptr) MSVCRT__wcslwr_l @ cdecl _wcslwr_s(wstr long) MSVCRT__wcslwr_s -@ stub _wcslwr_s_l +@ cdecl _wcslwr_s_l(wstr long ptr) MSVCRT__wcslwr_s_l @ cdecl _wcsncoll(wstr wstr long) MSVCRT__wcsncoll @ cdecl _wcsncoll_l(wstr wstr long ptr) MSVCRT__wcsncoll_l @ cdecl _wcsnicmp(wstr wstr long) MSVCRT__wcsnicmp diff --git a/dlls/msvcr70/msvcr70.spec b/dlls/msvcr70/msvcr70.spec index cf3e236..0168359 100644 --- a/dlls/msvcr70/msvcr70.spec +++ b/dlls/msvcr70/msvcr70.spec @@ -598,7 +598,7 @@ @ cdecl _wcserror(long) MSVCRT__wcserror @ cdecl _wcsicmp(wstr wstr) MSVCRT__wcsicmp @ cdecl _wcsicoll(wstr wstr) MSVCRT__wcsicoll -@ cdecl _wcslwr(wstr) ntdll._wcslwr +@ cdecl _wcslwr(wstr) MSVCRT__wcslwr @ cdecl _wcsncoll(wstr wstr long) MSVCRT__wcsncoll @ cdecl _wcsnicmp(wstr wstr long) MSVCRT__wcsnicmp @ cdecl _wcsnicoll(wstr wstr long) MSVCRT__wcsnicoll diff --git a/dlls/msvcr71/msvcr71.spec b/dlls/msvcr71/msvcr71.spec index 2912b2d..f5ff608 100644 --- a/dlls/msvcr71/msvcr71.spec +++ b/dlls/msvcr71/msvcr71.spec @@ -594,7 +594,7 @@ @ cdecl _wcserror(long) MSVCRT__wcserror @ cdecl _wcsicmp(wstr wstr) MSVCRT__wcsicmp @ cdecl _wcsicoll(wstr wstr) MSVCRT__wcsicoll -@ cdecl _wcslwr(wstr) ntdll._wcslwr +@ cdecl _wcslwr(wstr) MSVCRT__wcslwr @ cdecl _wcsncoll(wstr wstr long) MSVCRT__wcsncoll @ cdecl _wcsnicmp(wstr wstr long) MSVCRT__wcsnicmp @ cdecl _wcsnicoll(wstr wstr long) MSVCRT__wcsnicoll diff --git a/dlls/msvcr80/msvcr80.spec b/dlls/msvcr80/msvcr80.spec index c76465b..1898d11 100644 --- a/dlls/msvcr80/msvcr80.spec +++ b/dlls/msvcr80/msvcr80.spec @@ -1169,10 +1169,10 @@ @ cdecl _wcsicmp_l(wstr wstr ptr) MSVCRT__wcsicmp_l @ cdecl _wcsicoll(wstr wstr) MSVCRT__wcsicoll @ cdecl _wcsicoll_l(wstr wstr ptr) MSVCRT__wcsicoll_l -@ cdecl _wcslwr(wstr) ntdll._wcslwr -@ stub _wcslwr_l +@ cdecl _wcslwr(wstr) MSVCRT__wcslwr +@ cdecl _wcslwr_l(wstr ptr) MSVCRT__wcslwr_l @ cdecl _wcslwr_s(wstr long) MSVCRT__wcslwr_s -@ stub _wcslwr_s_l +@ cdecl _wcslwr_s_l(wstr long ptr) MSVCRT__wcslwr_s_l @ cdecl _wcsncoll(wstr wstr long) MSVCRT__wcsncoll @ cdecl _wcsncoll_l(wstr wstr long ptr) MSVCRT__wcsncoll_l @ cdecl _wcsnicmp(wstr wstr long) MSVCRT__wcsnicmp diff --git a/dlls/msvcr90/msvcr90.spec b/dlls/msvcr90/msvcr90.spec index 622b9f4..b4ea4b8 100644 --- a/dlls/msvcr90/msvcr90.spec +++ b/dlls/msvcr90/msvcr90.spec @@ -1145,10 +1145,10 @@ @ cdecl _wcsicmp_l(wstr wstr ptr) MSVCRT__wcsicmp_l @ cdecl _wcsicoll(wstr wstr) MSVCRT__wcsicoll @ cdecl _wcsicoll_l(wstr wstr ptr) MSVCRT__wcsicoll_l -@ cdecl _wcslwr(wstr) ntdll._wcslwr -@ stub _wcslwr_l +@ cdecl _wcslwr(wstr) MSVCRT__wcslwr +@ cdecl _wcslwr_l(wstr ptr) MSVCRT__wcslwr_l @ cdecl _wcslwr_s(wstr long) MSVCRT__wcslwr_s -@ stub _wcslwr_s_l +@ cdecl _wcslwr_s_l(wstr long ptr) MSVCRT__wcslwr_s_l @ cdecl _wcsncoll(wstr wstr long) MSVCRT__wcsncoll @ cdecl _wcsncoll_l(wstr wstr long ptr) MSVCRT__wcsncoll_l @ cdecl _wcsnicmp(wstr wstr long) MSVCRT__wcsnicmp diff --git a/dlls/msvcrt/msvcrt.spec b/dlls/msvcrt/msvcrt.spec index cd7a39b..69020f6 100644 --- a/dlls/msvcrt/msvcrt.spec +++ b/dlls/msvcrt/msvcrt.spec @@ -1106,10 +1106,10 @@ @ cdecl _wcsicmp_l(wstr wstr ptr) MSVCRT__wcsicmp_l @ cdecl _wcsicoll(wstr wstr) MSVCRT__wcsicoll @ cdecl _wcsicoll_l(wstr wstr ptr) MSVCRT__wcsicoll_l -@ cdecl _wcslwr(wstr) ntdll._wcslwr -# stub _wcslwr_l(wstr ptr) +@ cdecl _wcslwr(wstr) MSVCRT__wcslwr +@ cdecl _wcslwr_l(wstr ptr) MSVCRT__wcslwr_l @ cdecl _wcslwr_s(wstr long) MSVCRT__wcslwr_s -# stub _wcslwr_s_l(wstr long ptr) +@ cdecl _wcslwr_s_l(wstr long ptr) MSVCRT__wcslwr_s_l @ cdecl _wcsncoll(wstr wstr long) MSVCRT__wcsncoll @ cdecl _wcsncoll_l(wstr wstr long ptr) MSVCRT__wcsncoll_l @ cdecl _wcsnicmp(wstr wstr long) MSVCRT__wcsnicmp diff --git a/dlls/msvcrt/wcs.c b/dlls/msvcrt/wcs.c index 60a24a5..548c907 100644 --- a/dlls/msvcrt/wcs.c +++ b/dlls/msvcrt/wcs.c @@ -235,9 +235,9 @@ MSVCRT_wchar_t* CDECL MSVCRT__wcsupr_l( MSVCRT_wchar_t *str, MSVCRT__locale_t lo }
/****************************************************************** - * _wcslwr_s (MSVCRT.@) + * _wcslwr_s_l (MSVCRT.@) */ -int CDECL MSVCRT__wcslwr_s( MSVCRT_wchar_t* str, MSVCRT_size_t n ) +int CDECL MSVCRT__wcslwr_s_l( MSVCRT_wchar_t* str, MSVCRT_size_t n, MSVCRT__locale_t locale ) { MSVCRT_wchar_t* ptr = str;
@@ -262,6 +262,30 @@ int CDECL MSVCRT__wcslwr_s( MSVCRT_wchar_t* str, MSVCRT_size_t n ) return MSVCRT_EINVAL; }
+/****************************************************************** + * _wcslwr_s (MSVCRT.@) + */ +int CDECL MSVCRT__wcslwr_s( MSVCRT_wchar_t* str, MSVCRT_size_t n ) +{ + return MSVCRT__wcslwr_s_l(str, n, NULL); +} + +/****************************************************************** + * _wcslwr_l (MSVCRT.@) + */ +int CDECL MSVCRT__wcslwr_l( MSVCRT_wchar_t* str, MSVCRT__locale_t locale ) +{ + return MSVCRT__wcslwr_s_l(str, -1, locale); +} + +/****************************************************************** + * _wcslwr (MSVCRT.@) + */ +int CDECL MSVCRT__wcslwr( MSVCRT_wchar_t* str ) +{ + return MSVCRT__wcslwr_s_l(str, -1, NULL); +} + /********************************************************************* * _wcsncoll_l (MSVCRT.@) */