| #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); |