msvcrt: Copy wcscat implementation from ntdll.

Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Piotr Caban 2020-07-21 12:21:39 +02:00 committed by Alexandre Julliard
parent cf580265e3
commit 2c5bf68a5e
13 changed files with 21 additions and 11 deletions

View file

@ -504,7 +504,7 @@
@ cdecl vsprintf(ptr str ptr) MSVCRT_vsprintf @ cdecl vsprintf(ptr str ptr) MSVCRT_vsprintf
@ cdecl vswprintf(ptr wstr ptr) MSVCRT_vswprintf @ cdecl vswprintf(ptr wstr ptr) MSVCRT_vswprintf
@ cdecl vwprintf(wstr ptr) MSVCRT_vwprintf @ cdecl vwprintf(wstr ptr) MSVCRT_vwprintf
@ cdecl wcscat(wstr wstr) ntdll.wcscat @ cdecl wcscat(wstr wstr) MSVCRT_wcscat
@ cdecl wcschr(wstr long) MSVCRT_wcschr @ cdecl wcschr(wstr long) MSVCRT_wcschr
@ cdecl wcscmp(wstr wstr) MSVCRT_wcscmp @ cdecl wcscmp(wstr wstr) MSVCRT_wcscmp
@ cdecl wcscoll(wstr wstr) MSVCRT_wcscoll @ cdecl wcscoll(wstr wstr) MSVCRT_wcscoll

View file

@ -1854,7 +1854,7 @@
@ cdecl vwprintf_s(wstr ptr) MSVCRT_vwprintf_s @ cdecl vwprintf_s(wstr ptr) MSVCRT_vwprintf_s
@ cdecl wcrtomb(ptr long ptr) MSVCRT_wcrtomb @ cdecl wcrtomb(ptr long ptr) MSVCRT_wcrtomb
@ cdecl wcrtomb_s(ptr ptr long long ptr) MSVCRT_wcrtomb_s @ cdecl wcrtomb_s(ptr ptr long long ptr) MSVCRT_wcrtomb_s
@ cdecl wcscat(wstr wstr) ntdll.wcscat @ cdecl wcscat(wstr wstr) MSVCRT_wcscat
@ cdecl wcscat_s(wstr long wstr) MSVCRT_wcscat_s @ cdecl wcscat_s(wstr long wstr) MSVCRT_wcscat_s
@ cdecl wcschr(wstr long) MSVCRT_wcschr @ cdecl wcschr(wstr long) MSVCRT_wcschr
@ cdecl wcscmp(wstr wstr) MSVCRT_wcscmp @ cdecl wcscmp(wstr wstr) MSVCRT_wcscmp

View file

@ -2212,7 +2212,7 @@
@ cdecl vwprintf_s(wstr ptr) MSVCRT_vwprintf_s @ cdecl vwprintf_s(wstr ptr) MSVCRT_vwprintf_s
@ cdecl wcrtomb(ptr long ptr) MSVCRT_wcrtomb @ cdecl wcrtomb(ptr long ptr) MSVCRT_wcrtomb
@ cdecl wcrtomb_s(ptr ptr long long ptr) MSVCRT_wcrtomb_s @ cdecl wcrtomb_s(ptr ptr long long ptr) MSVCRT_wcrtomb_s
@ cdecl wcscat(wstr wstr) ntdll.wcscat @ cdecl wcscat(wstr wstr) MSVCRT_wcscat
@ cdecl wcscat_s(wstr long wstr) MSVCRT_wcscat_s @ cdecl wcscat_s(wstr long wstr) MSVCRT_wcscat_s
@ cdecl wcschr(wstr long) MSVCRT_wcschr @ cdecl wcschr(wstr long) MSVCRT_wcschr
@ cdecl wcscmp(wstr wstr) MSVCRT_wcscmp @ cdecl wcscmp(wstr wstr) MSVCRT_wcscmp

View file

@ -2447,7 +2447,7 @@
@ stub vwscanf_s @ stub vwscanf_s
@ cdecl wcrtomb(ptr long ptr) MSVCRT_wcrtomb @ cdecl wcrtomb(ptr long ptr) MSVCRT_wcrtomb
@ cdecl wcrtomb_s(ptr ptr long long ptr) MSVCRT_wcrtomb_s @ cdecl wcrtomb_s(ptr ptr long long ptr) MSVCRT_wcrtomb_s
@ cdecl wcscat(wstr wstr) ntdll.wcscat @ cdecl wcscat(wstr wstr) MSVCRT_wcscat
@ cdecl wcscat_s(wstr long wstr) MSVCRT_wcscat_s @ cdecl wcscat_s(wstr long wstr) MSVCRT_wcscat_s
@ cdecl wcschr(wstr long) MSVCRT_wcschr @ cdecl wcschr(wstr long) MSVCRT_wcschr
@ cdecl wcscmp(wstr wstr) MSVCRT_wcscmp @ cdecl wcscmp(wstr wstr) MSVCRT_wcscmp

View file

@ -850,7 +850,7 @@
@ cdecl vsprintf(ptr str ptr) MSVCRT_vsprintf @ cdecl vsprintf(ptr str ptr) MSVCRT_vsprintf
@ cdecl vswprintf(ptr wstr ptr) MSVCRT_vswprintf @ cdecl vswprintf(ptr wstr ptr) MSVCRT_vswprintf
@ cdecl vwprintf(wstr ptr) MSVCRT_vwprintf @ cdecl vwprintf(wstr ptr) MSVCRT_vwprintf
@ cdecl wcscat(wstr wstr) ntdll.wcscat @ cdecl wcscat(wstr wstr) MSVCRT_wcscat
@ cdecl wcschr(wstr long) MSVCRT_wcschr @ cdecl wcschr(wstr long) MSVCRT_wcschr
@ cdecl wcscmp(wstr wstr) MSVCRT_wcscmp @ cdecl wcscmp(wstr wstr) MSVCRT_wcscmp
@ cdecl wcscoll(wstr wstr) MSVCRT_wcscoll @ cdecl wcscoll(wstr wstr) MSVCRT_wcscoll

View file

@ -846,7 +846,7 @@
@ cdecl vsprintf(ptr str ptr) MSVCRT_vsprintf @ cdecl vsprintf(ptr str ptr) MSVCRT_vsprintf
@ cdecl vswprintf(ptr wstr ptr) MSVCRT_vswprintf @ cdecl vswprintf(ptr wstr ptr) MSVCRT_vswprintf
@ cdecl vwprintf(wstr ptr) MSVCRT_vwprintf @ cdecl vwprintf(wstr ptr) MSVCRT_vwprintf
@ cdecl wcscat(wstr wstr) ntdll.wcscat @ cdecl wcscat(wstr wstr) MSVCRT_wcscat
@ cdecl wcschr(wstr long) MSVCRT_wcschr @ cdecl wcschr(wstr long) MSVCRT_wcschr
@ cdecl wcscmp(wstr wstr) MSVCRT_wcscmp @ cdecl wcscmp(wstr wstr) MSVCRT_wcscmp
@ cdecl wcscoll(wstr wstr) MSVCRT_wcscoll @ cdecl wcscoll(wstr wstr) MSVCRT_wcscoll

View file

@ -1534,7 +1534,7 @@
@ cdecl vwprintf_s(wstr ptr) MSVCRT_vwprintf_s @ cdecl vwprintf_s(wstr ptr) MSVCRT_vwprintf_s
@ cdecl wcrtomb(ptr long ptr) MSVCRT_wcrtomb @ cdecl wcrtomb(ptr long ptr) MSVCRT_wcrtomb
@ cdecl wcrtomb_s(ptr ptr long long ptr) MSVCRT_wcrtomb_s @ cdecl wcrtomb_s(ptr ptr long long ptr) MSVCRT_wcrtomb_s
@ cdecl wcscat(wstr wstr) ntdll.wcscat @ cdecl wcscat(wstr wstr) MSVCRT_wcscat
@ cdecl wcscat_s(wstr long wstr) MSVCRT_wcscat_s @ cdecl wcscat_s(wstr long wstr) MSVCRT_wcscat_s
@ cdecl wcschr(wstr long) MSVCRT_wcschr @ cdecl wcschr(wstr long) MSVCRT_wcschr
@ cdecl wcscmp(wstr wstr) MSVCRT_wcscmp @ cdecl wcscmp(wstr wstr) MSVCRT_wcscmp

View file

@ -1507,7 +1507,7 @@
@ cdecl vwprintf_s(wstr ptr) MSVCRT_vwprintf_s @ cdecl vwprintf_s(wstr ptr) MSVCRT_vwprintf_s
@ cdecl wcrtomb(ptr long ptr) MSVCRT_wcrtomb @ cdecl wcrtomb(ptr long ptr) MSVCRT_wcrtomb
@ cdecl wcrtomb_s(ptr ptr long long ptr) MSVCRT_wcrtomb_s @ cdecl wcrtomb_s(ptr ptr long long ptr) MSVCRT_wcrtomb_s
@ cdecl wcscat(wstr wstr) ntdll.wcscat @ cdecl wcscat(wstr wstr) MSVCRT_wcscat
@ cdecl wcscat_s(wstr long wstr) MSVCRT_wcscat_s @ cdecl wcscat_s(wstr long wstr) MSVCRT_wcscat_s
@ cdecl wcschr(wstr long) MSVCRT_wcschr @ cdecl wcschr(wstr long) MSVCRT_wcschr
@ cdecl wcscmp(wstr wstr) MSVCRT_wcscmp @ cdecl wcscmp(wstr wstr) MSVCRT_wcscmp

View file

@ -1210,6 +1210,7 @@ int __cdecl MSVCRT__iswlower_l(MSVCRT_wchar_t, MSVCRT__locale_t);
int __cdecl MSVCRT__iswupper_l(MSVCRT_wchar_t, MSVCRT__locale_t); int __cdecl MSVCRT__iswupper_l(MSVCRT_wchar_t, MSVCRT__locale_t);
int __cdecl MSVCRT__iswprint_l(MSVCRT_wchar_t, MSVCRT__locale_t); int __cdecl MSVCRT__iswprint_l(MSVCRT_wchar_t, MSVCRT__locale_t);
int __cdecl MSVCRT__iswpunct_l(MSVCRT_wchar_t, MSVCRT__locale_t); int __cdecl MSVCRT__iswpunct_l(MSVCRT_wchar_t, MSVCRT__locale_t);
MSVCRT_size_t __cdecl MSVCRT_wcslen(const MSVCRT_wchar_t*);
/* Maybe one day we'll enable the invalid parameter handlers with the full set of information (msvcrXXd) /* Maybe one day we'll enable the invalid parameter handlers with the full set of information (msvcrXXd)
* #define MSVCRT_INVALID_PMT(x) MSVCRT_call_invalid_parameter_handler(x, __FUNCTION__, __FILE__, __LINE__, 0) * #define MSVCRT_INVALID_PMT(x) MSVCRT_call_invalid_parameter_handler(x, __FUNCTION__, __FILE__, __LINE__, 0)

View file

@ -1481,7 +1481,7 @@
@ cdecl vwprintf_s(wstr ptr) MSVCRT_vwprintf_s @ cdecl vwprintf_s(wstr ptr) MSVCRT_vwprintf_s
@ cdecl wcrtomb(ptr long ptr) MSVCRT_wcrtomb @ cdecl wcrtomb(ptr long ptr) MSVCRT_wcrtomb
@ cdecl wcrtomb_s(ptr ptr long long ptr) MSVCRT_wcrtomb_s @ cdecl wcrtomb_s(ptr ptr long long ptr) MSVCRT_wcrtomb_s
@ cdecl wcscat(wstr wstr) ntdll.wcscat @ cdecl wcscat(wstr wstr) MSVCRT_wcscat
@ cdecl wcscat_s(wstr long wstr) MSVCRT_wcscat_s @ cdecl wcscat_s(wstr long wstr) MSVCRT_wcscat_s
@ cdecl wcschr(wstr long) MSVCRT_wcschr @ cdecl wcschr(wstr long) MSVCRT_wcschr
@ cdecl wcscmp(wstr wstr) MSVCRT_wcscmp @ cdecl wcscmp(wstr wstr) MSVCRT_wcscmp

View file

@ -2255,6 +2255,15 @@ INT CDECL MSVCRT_wcscat_s(MSVCRT_wchar_t* dst, MSVCRT_size_t elem, const MSVCRT_
return MSVCRT_ERANGE; return MSVCRT_ERANGE;
} }
/***********************************************************************
* wcscat (MSVCRT.@)
*/
MSVCRT_wchar_t* __cdecl MSVCRT_wcscat( MSVCRT_wchar_t *dst, const MSVCRT_wchar_t *src )
{
MSVCRT_wcscpy( dst + MSVCRT_wcslen(dst), src );
return dst;
}
/********************************************************************* /*********************************************************************
* wcsncat_s (MSVCRT.@) * wcsncat_s (MSVCRT.@)
* *

View file

@ -802,7 +802,7 @@
@ cdecl vsprintf(ptr str ptr) MSVCRT_vsprintf @ cdecl vsprintf(ptr str ptr) MSVCRT_vsprintf
@ cdecl vswprintf(ptr wstr ptr) MSVCRT_vswprintf @ cdecl vswprintf(ptr wstr ptr) MSVCRT_vswprintf
@ cdecl vwprintf(wstr ptr) MSVCRT_vwprintf @ cdecl vwprintf(wstr ptr) MSVCRT_vwprintf
@ cdecl wcscat(wstr wstr) ntdll.wcscat @ cdecl wcscat(wstr wstr) MSVCRT_wcscat
@ cdecl wcschr(wstr long) MSVCRT_wcschr @ cdecl wcschr(wstr long) MSVCRT_wcschr
@ cdecl wcscmp(wstr wstr) MSVCRT_wcscmp @ cdecl wcscmp(wstr wstr) MSVCRT_wcscmp
@ cdecl wcscoll(wstr wstr) MSVCRT_wcscoll @ cdecl wcscoll(wstr wstr) MSVCRT_wcscoll

View file

@ -2554,7 +2554,7 @@
@ cdecl ungetwc(long ptr) MSVCRT_ungetwc @ cdecl ungetwc(long ptr) MSVCRT_ungetwc
@ cdecl wcrtomb(ptr long ptr) MSVCRT_wcrtomb @ cdecl wcrtomb(ptr long ptr) MSVCRT_wcrtomb
@ cdecl wcrtomb_s(ptr ptr long long ptr) MSVCRT_wcrtomb_s @ cdecl wcrtomb_s(ptr ptr long long ptr) MSVCRT_wcrtomb_s
@ cdecl wcscat(wstr wstr) ntdll.wcscat @ cdecl wcscat(wstr wstr) MSVCRT_wcscat
@ cdecl wcscat_s(wstr long wstr) MSVCRT_wcscat_s @ cdecl wcscat_s(wstr long wstr) MSVCRT_wcscat_s
@ cdecl wcschr(wstr long) MSVCRT_wcschr @ cdecl wcschr(wstr long) MSVCRT_wcschr
@ cdecl wcscmp(wstr wstr) MSVCRT_wcscmp @ cdecl wcscmp(wstr wstr) MSVCRT_wcscmp