mirror of
https://github.com/zeldaret/st
synced 2026-07-04 21:25:40 -04:00
Match MSL_C (#8)
* match wstring.c * match math_api.c, mbstring.c, mem.c and mem_funcs.c * more progress * build issues * fix non-matching issues * reorganise files * match fdlibm (+ libc progress) * fix jp build * solved some non-matchings and progress * removed types.h usage in libc * match data and add missing delinks for jp
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
#include <wstring.h>
|
||||
|
||||
size_t wcslen(const wchar_t *str) {
|
||||
size_t len = -1;
|
||||
|
||||
do {
|
||||
len++;
|
||||
} while (*str++ != 0);
|
||||
|
||||
return len;
|
||||
}
|
||||
|
||||
wchar_t *wcscpy(wchar_t *dest, const wchar_t *src) {
|
||||
const wchar_t *p = src;
|
||||
wchar_t *q = dest;
|
||||
|
||||
while ((*q++ = *p++) != L'\0')
|
||||
;
|
||||
|
||||
return dest;
|
||||
}
|
||||
|
||||
wchar_t *wcsncpy(wchar_t *dest, const wchar_t *src, size_t n) {
|
||||
const wchar_t *p = src;
|
||||
wchar_t *q = dest;
|
||||
|
||||
n++;
|
||||
|
||||
while (--n != 0) {
|
||||
if ((*q++ = *p++) == 0) {
|
||||
while (--n != 0) {
|
||||
*q++ = 0;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return dest;
|
||||
}
|
||||
|
||||
const wchar_t *wcschr(const wchar_t *str, wchar_t chr) {
|
||||
const wchar_t *p = str;
|
||||
wchar_t c = chr;
|
||||
wchar_t ch;
|
||||
|
||||
while (ch = *p++) {
|
||||
if (ch == c) {
|
||||
return ((char *) (p - 1));
|
||||
}
|
||||
}
|
||||
|
||||
return (c ? 0 : (char *) (p - 1));
|
||||
}
|
||||
Reference in New Issue
Block a user