mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-06-30 16:28:30 +00:00
Update Musl Libc code
We now have implement all of Musl's localization code, the same way that Musl implements localization. You may need setlocale(LC_ALL, "C.UTF-8"), just in case anything stops working as expected.
This commit is contained in:
parent
d0360bf4bd
commit
bb815eafaf
116 changed files with 6525 additions and 5523 deletions
|
@ -27,10 +27,7 @@ COSMOPOLITAN_C_START_
|
|||
void *memset(void *, int, size_t) memcpyesque;
|
||||
void *memmove(void *, const void *, size_t) memcpyesque;
|
||||
void *memcpy(void *, const void *, size_t) memcpyesque;
|
||||
void *mempcpy(void *, const void *, size_t) memcpyesque;
|
||||
char *hexpcpy(char *, const void *, size_t) memcpyesque;
|
||||
void *memccpy(void *, const void *, int, size_t) memcpyesque;
|
||||
void explicit_bzero(void *, size_t);
|
||||
|
||||
int memcmp(const void *, const void *, size_t) strlenesque;
|
||||
int timingsafe_bcmp(const void *, const void *, size_t) libcesque;
|
||||
|
@ -41,7 +38,6 @@ size_t strnlen(const char *, size_t) strlenesque;
|
|||
size_t strnlen_s(const char *, size_t) libcesque;
|
||||
char *strchr(const char *, int) strlenesque;
|
||||
void *memchr(const void *, int, size_t) strlenesque;
|
||||
char *strchrnul(const char *, int) strlenesque returnsnonnull;
|
||||
void *rawmemchr(const void *, int) strlenesque returnsnonnull;
|
||||
size_t wcslen(const wchar_t *) strlenesque;
|
||||
size_t wcsnlen(const wchar_t *, size_t) strlenesque;
|
||||
|
@ -51,7 +47,6 @@ wchar_t *wmemchr(const wchar_t *, wchar_t, size_t) strlenesque;
|
|||
wchar_t *wcschrnul(const wchar_t *, wchar_t)
|
||||
strlenesque returnsnonnull;
|
||||
char *strstr(const char *, const char *) strlenesque;
|
||||
char *strcasestr(const char *, const char *) strlenesque;
|
||||
wchar_t *wcsstr(const wchar_t *, const wchar_t *) strlenesque;
|
||||
int strcmp(const char *, const char *) strlenesque;
|
||||
int strncmp(const char *, const char *, size_t) strlenesque;
|
||||
|
@ -59,14 +54,11 @@ int wcscmp(const wchar_t *, const wchar_t *) strlenesque;
|
|||
int wcsncmp(const wchar_t *, const wchar_t *, size_t) strlenesque;
|
||||
int wmemcmp(const wchar_t *, const wchar_t *, size_t) strlenesque;
|
||||
int strcasecmp(const char *, const char *) strlenesque;
|
||||
int memcasecmp(const void *, const void *, size_t) strlenesque;
|
||||
int wcscasecmp(const wchar_t *, const wchar_t *) strlenesque;
|
||||
int strncasecmp(const char *, const char *, size_t) strlenesque;
|
||||
int wcsncasecmp(const wchar_t *, const wchar_t *, size_t) strlenesque;
|
||||
char *strrchr(const char *, int) strlenesque;
|
||||
void *memrchr(const void *, int, size_t) strlenesque;
|
||||
wchar_t *wcsrchr(const wchar_t *, wchar_t) strlenesque;
|
||||
void *wmemrchr(const wchar_t *, wchar_t, size_t) strlenesque;
|
||||
char *strpbrk(const char *, const char *) strlenesque;
|
||||
wchar_t *wcspbrk(const wchar_t *, const wchar_t *) strlenesque;
|
||||
size_t strspn(const char *, const char *) strlenesque;
|
||||
|
@ -75,13 +67,10 @@ size_t strcspn(const char *, const char *) strlenesque;
|
|||
size_t wcscspn(const wchar_t *, const wchar_t *) strlenesque;
|
||||
void *memfrob(void *, size_t) memcpyesque;
|
||||
int strcoll(const char *, const char *) strlenesque;
|
||||
char *strsep(char **, const char *) libcesque paramsnonnull();
|
||||
char *stpcpy(char *, const char *) memcpyesque;
|
||||
char *stpncpy(char *, const char *, size_t) memcpyesque;
|
||||
char *strcat(char *, const char *) memcpyesque;
|
||||
wchar_t *wcscat(wchar_t *, const wchar_t *) memcpyesque;
|
||||
size_t strlcpy(char *, const char *, size_t) libcesque;
|
||||
size_t strlcat(char *, const char *, size_t) libcesque;
|
||||
size_t strxfrm(char *, const char *, size_t) libcesque;
|
||||
char *strcpy(char *, const char *) memcpyesque;
|
||||
wchar_t *wcscpy(wchar_t *, const wchar_t *) memcpyesque;
|
||||
|
@ -91,13 +80,9 @@ char *strncpy(char *, const char *, size_t) memcpyesque;
|
|||
char *strtok(char *, const char *) paramsnonnull((2)) libcesque;
|
||||
char *strtok_r(char *, const char *, char **) paramsnonnull((2, 3));
|
||||
wchar_t *wcstok(wchar_t *, const wchar_t *, wchar_t **) paramsnonnull((2, 3));
|
||||
int strverscmp(const char *, const char *) libcesque;
|
||||
wchar_t *wmemset(wchar_t *, wchar_t, size_t) memcpyesque;
|
||||
wchar_t *wmemcpy(wchar_t *, const wchar_t *, size_t) memcpyesque;
|
||||
wchar_t *wmempcpy(wchar_t *, const wchar_t *, size_t) memcpyesque;
|
||||
wchar_t *wmemmove(wchar_t *, const wchar_t *, size_t) memcpyesque;
|
||||
void *memmem(const void *, size_t, const void *, size_t)
|
||||
libcesque nosideeffect;
|
||||
ssize_t strfmon(char *, size_t, const char *, ...) libcesque;
|
||||
long a64l(const char *) libcesque;
|
||||
char *l64a(long) libcesque;
|
||||
|
@ -131,6 +116,33 @@ char *strerror(int) returnsnonnull dontthrow dontcallback;
|
|||
errno_t strerror_r(int, char *, size_t) libcesque;
|
||||
char *__xpg_strerror_r(int, char *, size_t) libcesque;
|
||||
|
||||
int bcmp(const void *, const void *, size_t) strlenesque;
|
||||
void bcopy(const void *, void *, size_t) memcpyesque;
|
||||
void bzero(void *, size_t) memcpyesque;
|
||||
char *index(const char *, int) strlenesque;
|
||||
char *rindex(const char *, int) strlenesque;
|
||||
|
||||
#if defined(_COSMO_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE) || \
|
||||
defined(_XOPEN_SOURCE)
|
||||
void *memccpy(void *, const void *, int, size_t) memcpyesque;
|
||||
#endif
|
||||
|
||||
#if defined(_COSMO_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
|
||||
char *strsep(char **, const char *) libcesque paramsnonnull();
|
||||
void explicit_bzero(void *, size_t);
|
||||
size_t strlcpy(char *, const char *, size_t) libcesque;
|
||||
size_t strlcat(char *, const char *, size_t) libcesque;
|
||||
#endif
|
||||
|
||||
#if defined(_COSMO_SOURCE) || defined(_GNU_SOURCE)
|
||||
int strverscmp(const char *, const char *) libcesque;
|
||||
char *strchrnul(const char *, int) strlenesque returnsnonnull;
|
||||
char *strcasestr(const char *, const char *) strlenesque;
|
||||
void *memmem(const void *, size_t, const void *, size_t) libcesque;
|
||||
void *memrchr(const void *, int, size_t) strlenesque;
|
||||
void *mempcpy(void *, const void *, size_t) memcpyesque;
|
||||
#endif
|
||||
|
||||
#ifdef _COSMO_SOURCE
|
||||
pureconst uint64_t tpenc(uint32_t) libcesque;
|
||||
char *chomp(char *) libcesque;
|
||||
|
@ -141,6 +153,7 @@ bool32 startswithi(const char *, const char *) strlenesque;
|
|||
bool32 endswith(const char *, const char *) strlenesque;
|
||||
bool32 istext(const void *, size_t) libcesque;
|
||||
bool32 isutf8(const void *, size_t) libcesque;
|
||||
void *wmemrchr(const wchar_t *, wchar_t, size_t) strlenesque;
|
||||
const char *strsignal_r(int, char[21]) returnsnonnull libcesque __wur;
|
||||
char16_t *chomp16(char16_t *) libcesque;
|
||||
size_t strlen16(const char16_t *) strlenesque;
|
||||
|
@ -150,6 +163,7 @@ void *memchr16(const void *, int, size_t) strlenesque;
|
|||
char16_t *strchrnul16(const char16_t *, int) strlenesque returnsnonnull;
|
||||
void *rawmemchr16(const void *, int) strlenesque returnsnonnull;
|
||||
char16_t *strstr16(const char16_t *, const char16_t *) strlenesque;
|
||||
int memcasecmp(const void *, const void *, size_t) strlenesque;
|
||||
int strcmp16(const char16_t *, const char16_t *) strlenesque;
|
||||
int strncmp16(const char16_t *, const char16_t *, size_t) strlenesque;
|
||||
int strcasecmp16(const char16_t *, const char16_t *) strlenesque;
|
||||
|
@ -171,14 +185,9 @@ bool32 wcsstartswith(const wchar_t *, const wchar_t *) strlenesque;
|
|||
bool32 wcsendswith(const wchar_t *, const wchar_t *) strlenesque;
|
||||
char *__join_paths(char *, size_t, const char *, const char *) libcesque __wur;
|
||||
int __mkntpathat(int, const char *, int, char16_t[hasatleast 1024]);
|
||||
wchar_t *wmempcpy(wchar_t *, const wchar_t *, size_t) memcpyesque;
|
||||
#endif /* _COSMO_SOURCE */
|
||||
|
||||
int bcmp(const void *, const void *, size_t) strlenesque;
|
||||
void bcopy(const void *, void *, size_t) memcpyesque;
|
||||
void bzero(void *, size_t) memcpyesque;
|
||||
char *index(const char *, int) strlenesque;
|
||||
char *rindex(const char *, int) strlenesque;
|
||||
|
||||
COSMOPOLITAN_C_END_
|
||||
#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */
|
||||
#endif /* COSMOPOLITAN_LIBC_STR_STR_H_ */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue