24 lines
511 B
C
24 lines
511 B
C
#include <wchar.h>
|
|
#include <locale.h>
|
|
#include "locale_impl.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);
|