[SDK] Minor improvements to CRT, RTL, and headers
Signed-off-by: Quinn Stephens <quinn@osmora.org>
This commit is contained in:
@@ -5,7 +5,7 @@ Provided under the BSD 3-Clause license.
|
||||
|
||||
Module Name:
|
||||
|
||||
printf.c
|
||||
wprintf.c
|
||||
|
||||
Abstract:
|
||||
|
||||
|
@@ -64,21 +64,17 @@ memmove (
|
||||
|
||||
/* Check for overlap */
|
||||
if (src > dest || ((char *)src + count) < (char *)dest) {
|
||||
/* Low-to-high copy, like memcpy() */
|
||||
while (count--) {
|
||||
*(char *)dest = *(char *)src;
|
||||
dest = (char *)dest + 1;
|
||||
src = (char *)src + 1;
|
||||
}
|
||||
} else {
|
||||
/* High-to-low copy */
|
||||
dest = (char *)dest + count - 1;
|
||||
src = (char *)src + count - 1;
|
||||
while (count--) {
|
||||
*(char *)dest = *(char *)src;
|
||||
dest = (char *)dest - 1;
|
||||
src = (char *)src - 1;
|
||||
}
|
||||
/* Low-to-high copy, use memcpy() */
|
||||
return memcpy(dest, src, count);
|
||||
}
|
||||
|
||||
/* High-to-low copy */
|
||||
dest = (char *)dest + count - 1;
|
||||
src = (char *)src + count - 1;
|
||||
while (count--) {
|
||||
*(char *)dest = *(char *)src;
|
||||
dest = (char *)dest - 1;
|
||||
src = (char *)src - 1;
|
||||
}
|
||||
|
||||
return ptr;
|
||||
|
@@ -24,9 +24,11 @@ strlen (
|
||||
const char *ptr;
|
||||
|
||||
ptr = str;
|
||||
while (*ptr++);
|
||||
while (*ptr) {
|
||||
ptr++;
|
||||
}
|
||||
|
||||
return ptr - str - sizeof(char);
|
||||
return ptr - str;
|
||||
}
|
||||
|
||||
size_t
|
||||
@@ -36,12 +38,14 @@ strnlen (
|
||||
)
|
||||
|
||||
{
|
||||
size_t len;
|
||||
const char *ptr;
|
||||
|
||||
len = 0;
|
||||
while (len < maxlen && str[len++]);
|
||||
ptr = str;
|
||||
while (maxlen-- && *ptr) {
|
||||
ptr++;
|
||||
}
|
||||
|
||||
return len - sizeof(char);
|
||||
return ptr - str;
|
||||
}
|
||||
|
||||
int
|
||||
|
@@ -26,8 +26,7 @@ wmemset (
|
||||
wchar_t *ptr = dest;
|
||||
|
||||
while (count--) {
|
||||
*(wchar_t *)dest = c;
|
||||
dest = (wchar_t *)dest + 1;
|
||||
*dest++ = c;
|
||||
}
|
||||
|
||||
return ptr;
|
||||
@@ -44,9 +43,7 @@ wmemcpy (
|
||||
wchar_t *ptr = dest;
|
||||
|
||||
while (count--) {
|
||||
*(wchar_t *)dest = *(wchar_t *)src;
|
||||
dest = (wchar_t *)dest + 1;
|
||||
src = (wchar_t *)src + 1;
|
||||
*dest++ = *src++;
|
||||
}
|
||||
|
||||
return ptr;
|
||||
@@ -64,21 +61,17 @@ wmemmove (
|
||||
|
||||
/* Check for overlap */
|
||||
if (src > dest || ((wchar_t *)src + count) < (wchar_t *)dest) {
|
||||
/* Low-to-high copy, like memcpy() */
|
||||
while (count--) {
|
||||
*(wchar_t *)dest = *(wchar_t *)src;
|
||||
dest = (wchar_t *)dest + 1;
|
||||
src = (wchar_t *)src + 1;
|
||||
}
|
||||
} else {
|
||||
/* High-to-low copy */
|
||||
dest = (wchar_t *)dest + count - 1;
|
||||
src = (wchar_t *)src + count - 1;
|
||||
while (count--) {
|
||||
*(wchar_t *)dest = *(wchar_t *)src;
|
||||
dest = (wchar_t *)dest - 1;
|
||||
src = (wchar_t *)src - 1;
|
||||
}
|
||||
/* Low-to-high copy, use wmemcpy() */
|
||||
return wmemcpy(dest, src, count);
|
||||
}
|
||||
|
||||
/* High-to-low copy */
|
||||
dest = (wchar_t *)dest + count - 1;
|
||||
src = (wchar_t *)src + count - 1;
|
||||
while (count--) {
|
||||
*(wchar_t *)dest = *(wchar_t *)src;
|
||||
dest = (wchar_t *)dest - 1;
|
||||
src = (wchar_t *)src - 1;
|
||||
}
|
||||
|
||||
return ptr;
|
||||
|
@@ -24,7 +24,9 @@ wcslen (
|
||||
const wchar_t *ptr;
|
||||
|
||||
ptr = str;
|
||||
while (*ptr++);
|
||||
while (*ptr) {
|
||||
ptr++;
|
||||
}
|
||||
|
||||
return ptr - str;
|
||||
}
|
||||
@@ -36,15 +38,14 @@ wcsnlen (
|
||||
)
|
||||
|
||||
{
|
||||
size_t len;
|
||||
const wchar_t *ptr;
|
||||
|
||||
len = 0;
|
||||
while (len < maxlen && *str) {
|
||||
len++;
|
||||
str++;
|
||||
ptr = str;
|
||||
while (maxlen-- && *ptr) {
|
||||
ptr++;
|
||||
}
|
||||
|
||||
return len;
|
||||
return ptr - str;
|
||||
}
|
||||
|
||||
int
|
||||
|
Reference in New Issue
Block a user