diff --git a/dlls/msvcr100/msvcr100.spec b/dlls/msvcr100/msvcr100.spec index 581ff176299..ed40b65bd73 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 9973aa0c95a..8af410c58d1 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 cf3e236ab39..016835955ac 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 2912b2d6c08..f5ff608b262 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 c76465bfeef..1898d1153f4 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 622b9f40826..b4ea4b8721e 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 cd7a39b9e2c..69020f66cd9 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 60a24a5b16e..548c90728eb 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.@) */