[SDK:CRT] Implement wcscpy_s() and wcscat_s()
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
Reference in New Issue
Block a user