diff --git a/Userland/Libraries/LibC/wctype.cpp b/Userland/Libraries/LibC/wctype.cpp index 550c435e84c..f2c427dfd72 100644 --- a/Userland/Libraries/LibC/wctype.cpp +++ b/Userland/Libraries/LibC/wctype.cpp @@ -4,16 +4,68 @@ * SPDX-License-Identifier: BSD-2-Clause */ -#include -#include #include extern "C" { -wctype_t wctype(const char*) +int iswalnum(wint_t wc) { - dbgln("FIXME: Implement wctype()"); - TODO(); + return __inline_isalnum(wc); +} + +int iswalpha(wint_t wc) +{ + return __inline_isalpha(wc); +} + +int iswcntrl(wint_t wc) +{ + return __inline_iscntrl(wc); +} + +int iswdigit(wint_t wc) +{ + return __inline_isdigit(wc); +} + +int iswxdigit(wint_t wc) +{ + return __inline_isxdigit(wc); +} + +int iswspace(wint_t wc) +{ + return __inline_isspace(wc); +} + +int iswpunct(wint_t wc) +{ + return __inline_ispunct(wc); +} + +int iswprint(wint_t wc) +{ + return __inline_isprint(wc); +} + +int iswgraph(wint_t wc) +{ + return __inline_isgraph(wc); +} + +int iswlower(wint_t wc) +{ + return __inline_islower(wc); +} + +int iswupper(wint_t wc) +{ + return __inline_isupper(wc); +} + +int iswblank(wint_t wc) +{ + return __inline_isblank(wc); } int iswctype(wint_t, wctype_t) @@ -22,9 +74,31 @@ int iswctype(wint_t, wctype_t) TODO(); } -int iswprint(wint_t) +wctype_t wctype(const char*) { - dbgln("FIXME: Implement iswprint()"); + dbgln("FIXME: Implement wctype()"); + TODO(); +} + +wint_t towlower(wint_t wc) +{ + return __inline_tolower(wc); +} + +wint_t towupper(wint_t wc) +{ + return __inline_toupper(wc); +} + +wint_t towctrans(wint_t, wctrans_t) +{ + dbgln("FIXME: Implement towctrans()"); + TODO(); +} + +wctrans_t wctrans(const char*) +{ + dbgln("FIXME: Implement wctrans()"); TODO(); } } diff --git a/Userland/Libraries/LibC/wctype.h b/Userland/Libraries/LibC/wctype.h index e3f5784bed7..5532932359b 100644 --- a/Userland/Libraries/LibC/wctype.h +++ b/Userland/Libraries/LibC/wctype.h @@ -6,12 +6,32 @@ #pragma once +#include +#include +#include #include __BEGIN_DECLS -wctype_t wctype(const char* name); -int iswctype(wint_t wc, wctype_t desc); +typedef const int* wctrans_t; + +int iswalnum(wint_t wc); +int iswalpha(wint_t wc); +int iswcntrl(wint_t wc); +int iswdigit(wint_t wc); +int iswxdigit(wint_t wc); +int iswspace(wint_t wc); +int iswpunct(wint_t wc); int iswprint(wint_t wc); +int iswgraph(wint_t wc); +int iswlower(wint_t wc); +int iswupper(wint_t wc); +int iswblank(wint_t wc); +int iswctype(wint_t, wctype_t); +wctype_t wctype(const char*); +wint_t towlower(wint_t wc); +wint_t towupper(wint_t wc); +wint_t towctrans(wint_t, wctrans_t); +wctrans_t wctrans(const char*); __END_DECLS