---- strxfrm.c.orig 2003-05-20 15:23:55.000000000 -0700
-+++ strxfrm.c 2005-04-02 17:59:53.000000000 -0800
-@@ -28,24 +28,59 @@
+--- strxfrm.c.bsdnew 2009-11-18 18:24:38.000000000 -0800
++++ strxfrm.c 2009-11-18 18:38:07.000000000 -0800
+@@ -28,46 +28,118 @@
#include <sys/cdefs.h>
- __FBSDID("$FreeBSD: src/lib/libc/string/strxfrm.c,v 1.15 2002/09/06 11:24:06 tjr Exp $");
+ __FBSDID("$FreeBSD: src/lib/libc/string/strxfrm.c,v 1.17 2008/10/19 09:10:44 delphij Exp $");
+#include "xlocale_private.h"
+
return 0;
}
-- if (__collate_load_error) {
+- if (__collate_load_error)
+ NORMALIZE_LOCALE(loc);
-+ if (loc->__collate_load_error || (wcs = __collate_mbstowcs(src, loc)) == NULL) {
- slen = strlen(src);
- if (len > 0) {
- if (slen < len)
-@@ -58,26 +93,63 @@
- return slen;
- }
++ if (loc->__collate_load_error || (wcs = __collate_mbstowcs(src, loc)) == NULL)
+ return strlcpy(dest, src, len);
- slen = 0;
- prim = sec = 0;