From 55a03b3cd711bbd12ec91f9b95ae8e724c361327 Mon Sep 17 00:00:00 2001 From: tedu <> Date: Sat, 6 Sep 2003 22:43:12 +0000 Subject: [PATCH] standards compliant strxfrm. much simpler too. fixes sorting in glib2. ok deraadt@ espie@ marcm@ --- src/lib/libc/string/strxfrm.c | 20 ++++---------------- 1 file changed, 4 insertions(+), 16 deletions(-) diff --git a/src/lib/libc/string/strxfrm.c b/src/lib/libc/string/strxfrm.c index b7c8d482..a2e2dbc4 100644 --- a/src/lib/libc/string/strxfrm.c +++ b/src/lib/libc/string/strxfrm.c @@ -31,7 +31,7 @@ */ #if defined(LIBC_SCCS) && !defined(lint) -static char *rcsid = "$OpenBSD: strxfrm.c,v 1.4 2003/06/11 21:08:16 deraadt Exp $"; +static char *rcsid = "$OpenBSD: strxfrm.c,v 1.5 2003/09/06 22:43:12 tedu Exp $"; #endif /* LIBC_SCCS and not lint */ #include @@ -44,23 +44,11 @@ static char *rcsid = "$OpenBSD: strxfrm.c,v 1.4 2003/06/11 21:08:16 deraadt Exp size_t strxfrm(char *dst, const char *src, size_t n) { - size_t r = 0; - int c; /* * Since locales are unimplemented, this is just a copy. */ - if (n != 0) { - while ((c = *src++) != 0) { - r++; - if (--n == 0) { - while (*src++ != 0) - r++; - break; - } - *dst++ = c; - } - *dst = 0; - } - return (r); + if (n == 0) + return (strlen(src)); + return (strlcpy(dst, src, n)); }