[SDK:CRT] Implement wcscpy_s() and wcscat_s()

This commit is contained in:
2024-10-06 08:02:08 -04:00
parent b0b7be0837
commit 67ab5dc5d4
2 changed files with 46 additions and 3 deletions

View File

@@ -26,7 +26,7 @@ wcslen (
ptr = str;
while (*ptr++);
return (const char*)ptr - (const char*)str - sizeof(wchar_t);
return ptr - str;
}
size_t
@@ -39,9 +39,12 @@ wcsnlen (
size_t len;
len = 0;
while (len < maxlen && str[len++]);
while (len < maxlen && *str) {
len++;
str++;
}
return len - sizeof(wchar_t);
return len;
}
int
@@ -127,3 +130,41 @@ wcsstr (
return NULL;
}
wchar_t *
wcscpy_s (
wchar_t *dest,
size_t maxlen,
const wchar_t *src
)
{
for (size_t i = 0; i < maxlen; i++, src++) {
dest[i] = *src;
if (!*src) {
break;
}
}
return dest;
}
wchar_t *
wcscat_s (
wchar_t *dest,
size_t maxlen,
const wchar_t *src
)
{
for (size_t i = wcsnlen(dest, maxlen); i < maxlen; i++, src++) {
dest[i] = *src;
if (!*src) {
break;
}
}
return dest;
}