diff --git a/Userland/Libraries/LibC/wchar.cpp b/Userland/Libraries/LibC/wchar.cpp index db8e5838c5..37e6202b34 100644 --- a/Userland/Libraries/LibC/wchar.cpp +++ b/Userland/Libraries/LibC/wchar.cpp @@ -432,4 +432,21 @@ int swprintf(wchar_t*, size_t, const wchar_t*, ...) dbgln("TODO: Implement swprintf()"); TODO(); } + +int wcwidth(wchar_t wc) +{ + if (wc == L'\0') + return 0; + + // Printable ASCII. + if (wc >= 0x20 && wc <= 0x7e) + return 1; + + // Non-printable ASCII. + if (wc <= 0x7f) + return -1; + + // TODO: Implement wcwidth for non-ASCII characters. + return 1; +} } diff --git a/Userland/Libraries/LibC/wchar.h b/Userland/Libraries/LibC/wchar.h index 6563d8c9d4..958b992bf8 100644 --- a/Userland/Libraries/LibC/wchar.h +++ b/Userland/Libraries/LibC/wchar.h @@ -55,5 +55,6 @@ float wcstof(const wchar_t*, wchar_t**); double wcstod(const wchar_t*, wchar_t**); long double wcstold(const wchar_t*, wchar_t**); int swprintf(wchar_t*, size_t, const wchar_t*, ...); +int wcwidth(wchar_t); __END_DECLS