From 4312a1f65a485f01bf800b41063ef71867aa29f4 Mon Sep 17 00:00:00 2001 From: Ted Unangst Date: Sat, 6 Sep 2003 22:43:13 +0000 Subject: standards compliant strxfrm. much simpler too. fixes sorting in glib2. ok deraadt@ espie@ marcm@ --- lib/libc/string/strxfrm.c | 20 ++++---------------- 1 file changed, 4 insertions(+), 16 deletions(-) (limited to 'lib') diff --git a/lib/libc/string/strxfrm.c b/lib/libc/string/strxfrm.c index b7c8d4822d8..a2e2dbc4405 100644 --- a/lib/libc/string/strxfrm.c +++ b/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)); } -- cgit v1.2.3