update strxfrm/wcsxfrm for future LC_COLLATE support and ABI compat
[musl] / src / locale / wcsxfrm.c
1 #include <wchar.h>
2 #include <locale.h>
3 #include "libc.h"
4
5 /* collate only by code points */
6 size_t __wcsxfrm_l(wchar_t *restrict dest, const wchar_t *restrict src, size_t n, locale_t loc)
7 {
8         size_t l = wcslen(src);
9         if (l >= n) {
10                 wmemcpy(dest, src, n-1);
11                 dest[n-1] = 0;
12         } else wcscpy(dest, src);
13         return l;
14 }
15
16 size_t wcsxfrm(wchar_t *restrict dest, const wchar_t *restrict src, size_t n)
17 {
18         return __wcsxfrm_l(dest, src, n, LC_GLOBAL_LOCALE);
19 }
20
21 weak_alias(__wcsxfrm_l, wcsxfrm_l);