From cf580265e36c33f29c389c85c076a6539bad62de Mon Sep 17 00:00:00 2001 From: Piotr Caban Date: Tue, 21 Jul 2020 12:21:33 +0200 Subject: [PATCH] msvcrt: Copy wcscpy implementation from ntdll. Signed-off-by: Piotr Caban Signed-off-by: Alexandre Julliard --- dlls/crtdll/crtdll.spec | 2 +- dlls/msvcr100/msvcr100.spec | 2 +- dlls/msvcr110/msvcr110.spec | 2 +- dlls/msvcr120/msvcr120.spec | 2 +- dlls/msvcr70/msvcr70.spec | 2 +- dlls/msvcr71/msvcr71.spec | 2 +- dlls/msvcr80/msvcr80.spec | 2 +- dlls/msvcr90/msvcr90.spec | 2 +- dlls/msvcrt/msvcrt.spec | 2 +- dlls/msvcrt/wcs.c | 10 ++++++++++ dlls/msvcrtd/msvcrtd.spec | 2 +- dlls/ucrtbase/ucrtbase.spec | 4 ++-- 12 files changed, 22 insertions(+), 12 deletions(-) diff --git a/dlls/crtdll/crtdll.spec b/dlls/crtdll/crtdll.spec index 3acd20e1f63..45491455d09 100644 --- a/dlls/crtdll/crtdll.spec +++ b/dlls/crtdll/crtdll.spec @@ -508,7 +508,7 @@ @ cdecl wcschr(wstr long) MSVCRT_wcschr @ cdecl wcscmp(wstr wstr) MSVCRT_wcscmp @ cdecl wcscoll(wstr wstr) MSVCRT_wcscoll -@ cdecl wcscpy(ptr wstr) ntdll.wcscpy +@ cdecl wcscpy(ptr wstr) MSVCRT_wcscpy @ cdecl wcscspn(wstr wstr) ntdll.wcscspn @ cdecl wcsftime(ptr long wstr ptr) MSVCRT_wcsftime @ cdecl wcslen(wstr) MSVCRT_wcslen diff --git a/dlls/msvcr100/msvcr100.spec b/dlls/msvcr100/msvcr100.spec index 0a0d06b4da3..e37c0dbe5e4 100644 --- a/dlls/msvcr100/msvcr100.spec +++ b/dlls/msvcr100/msvcr100.spec @@ -1859,7 +1859,7 @@ @ cdecl wcschr(wstr long) MSVCRT_wcschr @ cdecl wcscmp(wstr wstr) MSVCRT_wcscmp @ cdecl wcscoll(wstr wstr) MSVCRT_wcscoll -@ cdecl wcscpy(ptr wstr) ntdll.wcscpy +@ cdecl wcscpy(ptr wstr) MSVCRT_wcscpy @ cdecl wcscpy_s(ptr long wstr) MSVCRT_wcscpy_s @ cdecl wcscspn(wstr wstr) ntdll.wcscspn @ cdecl wcsftime(ptr long wstr ptr) MSVCRT_wcsftime diff --git a/dlls/msvcr110/msvcr110.spec b/dlls/msvcr110/msvcr110.spec index 171cd49652a..8f1d9f93970 100644 --- a/dlls/msvcr110/msvcr110.spec +++ b/dlls/msvcr110/msvcr110.spec @@ -2217,7 +2217,7 @@ @ cdecl wcschr(wstr long) MSVCRT_wcschr @ cdecl wcscmp(wstr wstr) MSVCRT_wcscmp @ cdecl wcscoll(wstr wstr) MSVCRT_wcscoll -@ cdecl wcscpy(ptr wstr) ntdll.wcscpy +@ cdecl wcscpy(ptr wstr) MSVCRT_wcscpy @ cdecl wcscpy_s(ptr long wstr) MSVCRT_wcscpy_s @ cdecl wcscspn(wstr wstr) ntdll.wcscspn @ cdecl wcsftime(ptr long wstr ptr) MSVCRT_wcsftime diff --git a/dlls/msvcr120/msvcr120.spec b/dlls/msvcr120/msvcr120.spec index 01608639b52..731e001ac22 100644 --- a/dlls/msvcr120/msvcr120.spec +++ b/dlls/msvcr120/msvcr120.spec @@ -2452,7 +2452,7 @@ @ cdecl wcschr(wstr long) MSVCRT_wcschr @ cdecl wcscmp(wstr wstr) MSVCRT_wcscmp @ cdecl wcscoll(wstr wstr) MSVCRT_wcscoll -@ cdecl wcscpy(ptr wstr) ntdll.wcscpy +@ cdecl wcscpy(ptr wstr) MSVCRT_wcscpy @ cdecl wcscpy_s(ptr long wstr) MSVCRT_wcscpy_s @ cdecl wcscspn(wstr wstr) ntdll.wcscspn @ cdecl wcsftime(ptr long wstr ptr) MSVCRT_wcsftime diff --git a/dlls/msvcr70/msvcr70.spec b/dlls/msvcr70/msvcr70.spec index 627bcbb72e9..2aa111cab50 100644 --- a/dlls/msvcr70/msvcr70.spec +++ b/dlls/msvcr70/msvcr70.spec @@ -854,7 +854,7 @@ @ cdecl wcschr(wstr long) MSVCRT_wcschr @ cdecl wcscmp(wstr wstr) MSVCRT_wcscmp @ cdecl wcscoll(wstr wstr) MSVCRT_wcscoll -@ cdecl wcscpy(ptr wstr) ntdll.wcscpy +@ cdecl wcscpy(ptr wstr) MSVCRT_wcscpy @ cdecl wcscspn(wstr wstr) ntdll.wcscspn @ cdecl wcsftime(ptr long wstr ptr) MSVCRT_wcsftime @ cdecl wcslen(wstr) MSVCRT_wcslen diff --git a/dlls/msvcr71/msvcr71.spec b/dlls/msvcr71/msvcr71.spec index bae1f7fcdb4..da6827789ef 100644 --- a/dlls/msvcr71/msvcr71.spec +++ b/dlls/msvcr71/msvcr71.spec @@ -850,7 +850,7 @@ @ cdecl wcschr(wstr long) MSVCRT_wcschr @ cdecl wcscmp(wstr wstr) MSVCRT_wcscmp @ cdecl wcscoll(wstr wstr) MSVCRT_wcscoll -@ cdecl wcscpy(ptr wstr) ntdll.wcscpy +@ cdecl wcscpy(ptr wstr) MSVCRT_wcscpy @ cdecl wcscspn(wstr wstr) ntdll.wcscspn @ cdecl wcsftime(ptr long wstr ptr) MSVCRT_wcsftime @ cdecl wcslen(wstr) MSVCRT_wcslen diff --git a/dlls/msvcr80/msvcr80.spec b/dlls/msvcr80/msvcr80.spec index fff542a337b..1847a93c71f 100644 --- a/dlls/msvcr80/msvcr80.spec +++ b/dlls/msvcr80/msvcr80.spec @@ -1539,7 +1539,7 @@ @ cdecl wcschr(wstr long) MSVCRT_wcschr @ cdecl wcscmp(wstr wstr) MSVCRT_wcscmp @ cdecl wcscoll(wstr wstr) MSVCRT_wcscoll -@ cdecl wcscpy(ptr wstr) ntdll.wcscpy +@ cdecl wcscpy(ptr wstr) MSVCRT_wcscpy @ cdecl wcscpy_s(ptr long wstr) MSVCRT_wcscpy_s @ cdecl wcscspn(wstr wstr) ntdll.wcscspn @ cdecl wcsftime(ptr long wstr ptr) MSVCRT_wcsftime diff --git a/dlls/msvcr90/msvcr90.spec b/dlls/msvcr90/msvcr90.spec index 8854495454d..8a53cf47a56 100644 --- a/dlls/msvcr90/msvcr90.spec +++ b/dlls/msvcr90/msvcr90.spec @@ -1512,7 +1512,7 @@ @ cdecl wcschr(wstr long) MSVCRT_wcschr @ cdecl wcscmp(wstr wstr) MSVCRT_wcscmp @ cdecl wcscoll(wstr wstr) MSVCRT_wcscoll -@ cdecl wcscpy(ptr wstr) ntdll.wcscpy +@ cdecl wcscpy(ptr wstr) MSVCRT_wcscpy @ cdecl wcscpy_s(ptr long wstr) MSVCRT_wcscpy_s @ cdecl wcscspn(wstr wstr) ntdll.wcscspn @ cdecl wcsftime(ptr long wstr ptr) MSVCRT_wcsftime diff --git a/dlls/msvcrt/msvcrt.spec b/dlls/msvcrt/msvcrt.spec index c88e1464612..ac1269c53f8 100644 --- a/dlls/msvcrt/msvcrt.spec +++ b/dlls/msvcrt/msvcrt.spec @@ -1486,7 +1486,7 @@ @ cdecl wcschr(wstr long) MSVCRT_wcschr @ cdecl wcscmp(wstr wstr) MSVCRT_wcscmp @ cdecl wcscoll(wstr wstr) MSVCRT_wcscoll -@ cdecl wcscpy(ptr wstr) ntdll.wcscpy +@ cdecl wcscpy(ptr wstr) MSVCRT_wcscpy @ cdecl wcscpy_s(ptr long wstr) MSVCRT_wcscpy_s @ cdecl wcscspn(wstr wstr) ntdll.wcscspn @ cdecl wcsftime(ptr long wstr ptr) MSVCRT_wcsftime diff --git a/dlls/msvcrt/wcs.c b/dlls/msvcrt/wcs.c index affded2438c..b553f27d276 100644 --- a/dlls/msvcrt/wcs.c +++ b/dlls/msvcrt/wcs.c @@ -2162,6 +2162,16 @@ INT CDECL MSVCRT_wcscpy_s( MSVCRT_wchar_t* wcDest, MSVCRT_size_t numElement, con return 0; } +/*********************************************************************** + * wcscpy (MSVCRT.@) + */ +MSVCRT_wchar_t* __cdecl MSVCRT_wcscpy( MSVCRT_wchar_t *dst, const MSVCRT_wchar_t *src ) +{ + WCHAR *p = dst; + while ((*p++ = *src++)); + return dst; +} + /****************************************************************** * wcsncpy (MSVCRT.@) */ diff --git a/dlls/msvcrtd/msvcrtd.spec b/dlls/msvcrtd/msvcrtd.spec index 7b082494d7f..0f6af7cce74 100644 --- a/dlls/msvcrtd/msvcrtd.spec +++ b/dlls/msvcrtd/msvcrtd.spec @@ -806,7 +806,7 @@ @ cdecl wcschr(wstr long) MSVCRT_wcschr @ cdecl wcscmp(wstr wstr) MSVCRT_wcscmp @ cdecl wcscoll(wstr wstr) MSVCRT_wcscoll -@ cdecl wcscpy(ptr wstr) ntdll.wcscpy +@ cdecl wcscpy(ptr wstr) MSVCRT_wcscpy @ cdecl wcscspn(wstr wstr) ntdll.wcscspn @ cdecl wcsftime(ptr long wstr ptr) MSVCRT_wcsftime @ cdecl wcslen(wstr) MSVCRT_wcslen diff --git a/dlls/ucrtbase/ucrtbase.spec b/dlls/ucrtbase/ucrtbase.spec index 7aebd81e02a..2367e5a08d8 100644 --- a/dlls/ucrtbase/ucrtbase.spec +++ b/dlls/ucrtbase/ucrtbase.spec @@ -1816,7 +1816,7 @@ @ cdecl _o_wcrtomb_s(ptr ptr long long ptr) MSVCRT_wcrtomb_s @ cdecl _o_wcscat_s(wstr long wstr) MSVCRT_wcscat_s @ cdecl _o_wcscoll(wstr wstr) MSVCRT_wcscoll -@ cdecl _o_wcscpy(ptr wstr) ntdll.wcscpy +@ cdecl _o_wcscpy(ptr wstr) MSVCRT_wcscpy @ cdecl _o_wcscpy_s(ptr long wstr) MSVCRT_wcscpy_s @ cdecl _o_wcsftime(ptr long wstr ptr) MSVCRT_wcsftime @ cdecl _o_wcsncat_s(wstr long wstr long) MSVCRT_wcsncat_s @@ -2559,7 +2559,7 @@ @ cdecl wcschr(wstr long) MSVCRT_wcschr @ cdecl wcscmp(wstr wstr) MSVCRT_wcscmp @ cdecl wcscoll(wstr wstr) MSVCRT_wcscoll -@ cdecl wcscpy(ptr wstr) ntdll.wcscpy +@ cdecl wcscpy(ptr wstr) MSVCRT_wcscpy @ cdecl wcscpy_s(ptr long wstr) MSVCRT_wcscpy_s @ cdecl wcscspn(wstr wstr) ntdll.wcscspn @ cdecl wcsftime(ptr long wstr ptr) MSVCRT_wcsftime -- 2.11.4.GIT