mirror of
https://github.com/zeldaret/st
synced 2026-07-04 13:20:04 -04:00
c98c03de39
* 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
54 lines
918 B
C
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));
|
|
}
|