Browse Source

update strxfrm/wcsxfrm for future LC_COLLATE support and ABI compat

Rich Felker 11 years ago
parent
commit
ad4a536769
4 changed files with 20 additions and 14 deletions
  1. 10 1
      src/locale/strxfrm.c
  2. 0 6
      src/locale/strxfrm_l.c
  3. 10 1
      src/locale/wcsxfrm.c
  4. 0 6
      src/locale/wcsxfrm_l.c

+ 10 - 1
src/locale/strxfrm.c

@@ -1,9 +1,18 @@
 #include <string.h>
+#include <locale.h>
+#include "libc.h"
 
 /* collate only by code points */
-size_t strxfrm(char *restrict dest, const char *restrict src, size_t n)
+size_t __strxfrm_l(char *restrict dest, const char *restrict src, size_t n, locale_t loc)
 {
 	size_t l = strlen(src);
 	if (n > l) strcpy(dest, src);
 	return l;
 }
+
+size_t strxfrm(char *restrict dest, const char *restrict src, size_t n)
+{
+	return __strxfrm_l(dest, src, n, LC_GLOBAL_LOCALE);
+}
+
+weak_alias(__strxfrm_l, strxfrm_l);

+ 0 - 6
src/locale/strxfrm_l.c

@@ -1,6 +0,0 @@
-#include <string.h>
-
-size_t strxfrm_l(char *restrict dest, const char *restrict src, size_t n, locale_t l)
-{
-	return strxfrm(dest, src, n);
-}

+ 10 - 1
src/locale/wcsxfrm.c

@@ -1,7 +1,9 @@
 #include <wchar.h>
+#include <locale.h>
+#include "libc.h"
 
 /* collate only by code points */
-size_t wcsxfrm(wchar_t *restrict dest, const wchar_t *restrict src, size_t n)
+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) {
@@ -10,3 +12,10 @@ size_t wcsxfrm(wchar_t *restrict dest, const wchar_t *restrict src, size_t n)
 	} else wcscpy(dest, src);
 	return l;
 }
+
+size_t wcsxfrm(wchar_t *restrict dest, const wchar_t *restrict src, size_t n)
+{
+	return __wcsxfrm_l(dest, src, n, LC_GLOBAL_LOCALE);
+}
+
+weak_alias(__wcsxfrm_l, wcsxfrm_l);

+ 0 - 6
src/locale/wcsxfrm_l.c

@@ -1,6 +0,0 @@
-#include <wchar.h>
-
-size_t wcsxfrm_l(wchar_t *restrict dest, const wchar_t *restrict src, size_t n, locale_t locale)
-{
-	return wcsxfrm(dest, src, n);
-}