| Index: fusl/src/locale/wcsxfrm.c
|
| diff --git a/fusl/src/locale/wcsxfrm.c b/fusl/src/locale/wcsxfrm.c
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..0a0b776dadf46aa65c91303dd43776b22c158679
|
| --- /dev/null
|
| +++ b/fusl/src/locale/wcsxfrm.c
|
| @@ -0,0 +1,24 @@
|
| +#include <wchar.h>
|
| +#include <locale.h>
|
| +#include "locale_impl.h"
|
| +#include "libc.h"
|
| +
|
| +/* collate only by code points */
|
| +size_t __wcsxfrm_l(wchar_t *restrict dest, const wchar_t *restrict src, size_t n, locale_t loc)
|
| +{
|
| + size_t l = wcslen(src);
|
| + if (l < n) {
|
| + wmemcpy(dest, src, l+1);
|
| + } else if (n) {
|
| + wmemcpy(dest, src, n-1);
|
| + dest[n-1] = 0;
|
| + }
|
| + return l;
|
| +}
|
| +
|
| +size_t wcsxfrm(wchar_t *restrict dest, const wchar_t *restrict src, size_t n)
|
| +{
|
| + return __wcsxfrm_l(dest, src, n, CURRENT_LOCALE);
|
| +}
|
| +
|
| +weak_alias(__wcsxfrm_l, wcsxfrm_l);
|
|
|