msvcrt: Implemented wcscat_s.

This commit is contained in:
Eric Pouech 2008-10-12 13:34:16 +02:00 committed by Alexandre Julliard
parent dfb64699bf
commit 07c80924eb
2 changed files with 27 additions and 0 deletions

View File

@ -762,6 +762,7 @@
@ cdecl vswprintf(ptr wstr ptr) MSVCRT_vswprintf
@ cdecl vwprintf(wstr ptr) MSVCRT_vwprintf
@ cdecl wcscat(wstr wstr) ntdll.wcscat
@ cdecl wcscat_s(wstr long wstr) MSVCRT_wcscat_s
@ cdecl wcschr(wstr long) ntdll.wcschr
@ cdecl wcscmp(wstr wstr) ntdll.wcscmp
@ cdecl wcscoll(wstr wstr) MSVCRT_wcscoll

View File

@ -1077,3 +1077,29 @@ INT CDECL MSVCRT_wcsncpy_s( MSVCRT_wchar_t* wcDest, MSVCRT_size_t numElement, co
return 0;
}
/******************************************************************
* wcscat_s (MSVCRT.@)
*
*/
INT CDECL MSVCRT_wcscat_s(MSVCRT_wchar_t* dst, MSVCRT_size_t elem, const MSVCRT_wchar_t* src)
{
MSVCRT_wchar_t* ptr = dst;
if (!dst || elem == 0) return MSVCRT_EINVAL;
if (!src)
{
dst[0] = '\0';
return MSVCRT_EINVAL;
}
/* seek to end of dst string (or elem if no end of string is found */
while (ptr < dst + elem && *ptr != '\0') ptr++;
while (ptr < dst + elem)
{
if ((*ptr++ = *src++) == '\0') return 0;
}
/* not enough space */
dst[0] = '\0';
return MSVCRT_ERANGE;
}