diff options
author | Daniel Bertalan <dani@danielbertalan.dev> | 2021-10-16 10:40:27 +0200 |
---|---|---|
committer | Linus Groh <mail@linusgroh.de> | 2021-10-17 17:09:58 +0100 |
commit | 95c32fdf19adbc94223c8a288f72e9c3d71aaba5 (patch) | |
tree | 2d729faa891606c3c2bda8b158e054e0b0936655 /Userland | |
parent | 13e6d9d71a57d6127207af66b708f545719064da (diff) | |
download | serenity-95c32fdf19adbc94223c8a288f72e9c3d71aaba5.zip |
LibC: Primitively implement wcsxfrm
The `wcsxfrm` function copies a wide character string into a buffer,
such that comparing the new string against any similarly pre-processed
string with `wcscmp` produces the same result as if the original strings
were compared with `wcscoll`.
Our current `wcscoll` implementation is simply an alias for `wcscmp`, so
`wcsxfrm` needs to perform no actions other than copying the string.
Diffstat (limited to 'Userland')
-rw-r--r-- | Userland/Libraries/LibC/wchar.cpp | 6 | ||||
-rw-r--r-- | Userland/Libraries/LibC/wchar.h | 1 |
2 files changed, 7 insertions, 0 deletions
diff --git a/Userland/Libraries/LibC/wchar.cpp b/Userland/Libraries/LibC/wchar.cpp index 9462f87c04..b408e4fb71 100644 --- a/Userland/Libraries/LibC/wchar.cpp +++ b/Userland/Libraries/LibC/wchar.cpp @@ -331,6 +331,12 @@ int wcscoll(const wchar_t* ws1, const wchar_t* ws2) return wcscmp(ws1, ws2); } +size_t wcsxfrm(wchar_t* dest, const wchar_t* src, size_t n) +{ + // TODO: This needs to be changed when wcscoll is not just doing wcscmp + return wcslcpy(dest, src, n); +} + int wctob(wint_t c) { if (c > 0x7f) diff --git a/Userland/Libraries/LibC/wchar.h b/Userland/Libraries/LibC/wchar.h index 12ef0f530c..e52869722d 100644 --- a/Userland/Libraries/LibC/wchar.h +++ b/Userland/Libraries/LibC/wchar.h @@ -44,6 +44,7 @@ size_t mbrtowc(wchar_t*, const char*, size_t, mbstate_t*); size_t mbrlen(const char*, size_t, mbstate_t*); size_t wcrtomb(char*, wchar_t, mbstate_t*); int wcscoll(const wchar_t*, const wchar_t*); +size_t wcsxfrm(wchar_t*, const wchar_t*, size_t); int wctob(wint_t); int mbsinit(const mbstate_t*); wchar_t* wcspbrk(const wchar_t*, const wchar_t*); |