diff options
Diffstat (limited to 'src/lib/libc/string/strxfrm.c')
-rw-r--r-- | src/lib/libc/string/strxfrm.c | 35 |
1 files changed, 6 insertions, 29 deletions
diff --git a/src/lib/libc/string/strxfrm.c b/src/lib/libc/string/strxfrm.c index d9df77b957..6f289c901e 100644 --- a/src/lib/libc/string/strxfrm.c +++ b/src/lib/libc/string/strxfrm.c | |||
@@ -1,3 +1,4 @@ | |||
1 | /* $OpenBSD: strxfrm.c,v 1.6 2005/08/08 08:05:37 espie Exp $ */ | ||
1 | /*- | 2 | /*- |
2 | * Copyright (c) 1990 The Regents of the University of California. | 3 | * Copyright (c) 1990 The Regents of the University of California. |
3 | * All rights reserved. | 4 | * All rights reserved. |
@@ -13,11 +14,7 @@ | |||
13 | * 2. Redistributions in binary form must reproduce the above copyright | 14 | * 2. Redistributions in binary form must reproduce the above copyright |
14 | * notice, this list of conditions and the following disclaimer in the | 15 | * notice, this list of conditions and the following disclaimer in the |
15 | * documentation and/or other materials provided with the distribution. | 16 | * documentation and/or other materials provided with the distribution. |
16 | * 3. All advertising materials mentioning features or use of this software | 17 | * 3. Neither the name of the University nor the names of its contributors |
17 | * must display the following acknowledgement: | ||
18 | * This product includes software developed by the University of | ||
19 | * California, Berkeley and its contributors. | ||
20 | * 4. Neither the name of the University nor the names of its contributors | ||
21 | * may be used to endorse or promote products derived from this software | 18 | * may be used to endorse or promote products derived from this software |
22 | * without specific prior written permission. | 19 | * without specific prior written permission. |
23 | * | 20 | * |
@@ -34,11 +31,6 @@ | |||
34 | * SUCH DAMAGE. | 31 | * SUCH DAMAGE. |
35 | */ | 32 | */ |
36 | 33 | ||
37 | #if defined(LIBC_SCCS) && !defined(lint) | ||
38 | /*static char *sccsid = "from: @(#)strxfrm.c 5.2 (Berkeley) 1/26/91";*/ | ||
39 | static char *rcsid = "$Id: strxfrm.c,v 1.1.1.1 1995/10/18 08:42:23 deraadt Exp $"; | ||
40 | #endif /* LIBC_SCCS and not lint */ | ||
41 | |||
42 | #include <string.h> | 34 | #include <string.h> |
43 | 35 | ||
44 | /* | 36 | /* |
@@ -47,28 +39,13 @@ static char *rcsid = "$Id: strxfrm.c,v 1.1.1.1 1995/10/18 08:42:23 deraadt Exp $ | |||
47 | * on the original untransformed strings would return. | 39 | * on the original untransformed strings would return. |
48 | */ | 40 | */ |
49 | size_t | 41 | size_t |
50 | strxfrm(dst, src, n) | 42 | strxfrm(char *dst, const char *src, size_t n) |
51 | register char *dst; | ||
52 | register const char *src; | ||
53 | register size_t n; | ||
54 | { | 43 | { |
55 | register size_t r = 0; | ||
56 | register int c; | ||
57 | 44 | ||
58 | /* | 45 | /* |
59 | * Since locales are unimplemented, this is just a copy. | 46 | * Since locales are unimplemented, this is just a copy. |
60 | */ | 47 | */ |
61 | if (n != 0) { | 48 | if (n == 0) |
62 | while ((c = *src++) != 0) { | 49 | return (strlen(src)); |
63 | r++; | 50 | return (strlcpy(dst, src, n)); |
64 | if (--n == 0) { | ||
65 | while (*src++ != 0) | ||
66 | r++; | ||
67 | break; | ||
68 | } | ||
69 | *dst++ = c; | ||
70 | } | ||
71 | *dst = 0; | ||
72 | } | ||
73 | return (r); | ||
74 | } | 51 | } |