Files
st/libs/c/src/wstring.c
T
Yanis c98c03de39 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
2025-12-17 14:08:53 +01:00

54 lines
918 B
C

#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));
}