Implement strcasecmp, wcslen and wcsrtombs

This commit is contained in:
Alex
2023-03-30 19:57:12 +03:00
parent 09e549fdb7
commit 43af65b21e
3 changed files with 105 additions and 3 deletions

View File

@ -5,6 +5,13 @@
extern "C"
{
#endif
typedef struct mbstate_t
{
int count;
unsigned int value;
} mbstate_t;
#define NAN (__builtin_nanf(""))
int isdigit(int c);
@ -71,9 +78,11 @@ extern "C"
char *strchr(const char *String, int Char);
char *strrchr(const char *String, int Char);
int strncasecmp(const char *lhs, const char *rhs, long unsigned int Count);
int strcasecmp(const char *lhs, const char *rhs);
int strcasecmp(const char *s1, const char *s2);
char *strtok(char *src, const char *delim);
long int strtol(const char *str, char **endptr, int base);
size_t wcslen(const wchar_t *s);
size_t wcsrtombs(char *dst, const wchar_t **src, size_t len, mbstate_t *ps);
int log2(unsigned int n);
void *__memcpy_chk(void *dest, const void *src, size_t len, size_t slen);

View File

@ -152,7 +152,9 @@ typedef __UINTMAX_TYPE__ uintmax_t;
typedef __PTRDIFF_TYPE__ ptrdiff_t;
typedef __SIZE_TYPE__ size_t;
// typedef __WCHAR_TYPE__ wchar_t;
#ifndef __cplusplus
typedef __WCHAR_TYPE__ wchar_t;
#endif
typedef __WINT_TYPE__ wint_t;
typedef __SIG_ATOMIC_TYPE__ sig_atomic_t;
// TODO: ssize_t
@ -243,7 +245,7 @@ typedef int48_t int_least48_t;
typedef uint48_t uint_least48_t;
typedef int48_t int_fast48_t;
typedef uint48_t uint_fast48_t;
#else // __INT48_TYPE__
#else // __INT48_TYPE__
typedef __INT64_TYPE__ int48_t;
typedef __UINT64_TYPE__ uint48_t;
typedef int48_t int_least48_t;