summaryrefslogtreecommitdiff
path: root/lib/libc/string
diff options
context:
space:
mode:
authortnozaki <tnozaki@NetBSD.org>2005-10-13 21:13:05 +0000
committertnozaki <tnozaki@NetBSD.org>2005-10-13 21:13:05 +0000
commit52d79cc3ed8f18ebd4ca072a34f20194a65076dd (patch)
tree33aeacc965a552a2de8900bc8a8513faee81bd4a /lib/libc/string
parenta520767b2c6f8d9bd56ae787bebc381a1cb8005d (diff)
wcscpy - cleanup
wcsncpy - SUSv6 if s2 is shorter than n, s1 should be filled with L'\0' until n.
Diffstat (limited to 'lib/libc/string')
-rw-r--r--lib/libc/string/wcscpy.c12
-rw-r--r--lib/libc/string/wcsncpy.c16
2 files changed, 11 insertions, 17 deletions
diff --git a/lib/libc/string/wcscpy.c b/lib/libc/string/wcscpy.c
index c78a8ab6d63..aabb6d667c1 100644
--- a/lib/libc/string/wcscpy.c
+++ b/lib/libc/string/wcscpy.c
@@ -1,4 +1,4 @@
-/* $NetBSD: wcscpy.c,v 1.2 2001/01/03 14:29:36 lukem Exp $ */
+/* $NetBSD: wcscpy.c,v 1.3 2005/10/13 21:13:05 tnozaki Exp $ */
/*-
* Copyright (c)1999 Citrus Project,
@@ -30,7 +30,7 @@
#include <sys/cdefs.h>
#if defined(LIBC_SCCS) && !defined(lint)
-__RCSID("$NetBSD: wcscpy.c,v 1.2 2001/01/03 14:29:36 lukem Exp $");
+__RCSID("$NetBSD: wcscpy.c,v 1.3 2005/10/13 21:13:05 tnozaki Exp $");
#endif /* LIBC_SCCS and not lint */
#include <assert.h>
@@ -42,17 +42,11 @@ wcscpy(s1, s2)
const wchar_t *s2;
{
wchar_t *p;
- const wchar_t *q;
_DIAGASSERT(s1 != NULL);
_DIAGASSERT(s2 != NULL);
- *s1 = '\0';
- p = s1;
- q = s2;
- while (*q)
- *p++ = *q++;
- *p = '\0';
+ for (p = s1; (*p = *s2) != L'\0'; ++p, ++s2);
return s1;
}
diff --git a/lib/libc/string/wcsncpy.c b/lib/libc/string/wcsncpy.c
index c55c92a3b0e..978ff48a54f 100644
--- a/lib/libc/string/wcsncpy.c
+++ b/lib/libc/string/wcsncpy.c
@@ -1,4 +1,4 @@
-/* $NetBSD: wcsncpy.c,v 1.2 2001/01/03 14:29:37 lukem Exp $ */
+/* $NetBSD: wcsncpy.c,v 1.3 2005/10/13 21:13:05 tnozaki Exp $ */
/*-
* Copyright (c)1999 Citrus Project,
@@ -30,7 +30,7 @@
#include <sys/cdefs.h>
#if defined(LIBC_SCCS) && !defined(lint)
-__RCSID("$NetBSD: wcsncpy.c,v 1.2 2001/01/03 14:29:37 lukem Exp $");
+__RCSID("$NetBSD: wcsncpy.c,v 1.3 2005/10/13 21:13:05 tnozaki Exp $");
#endif /* LIBC_SCCS and not lint */
#include <assert.h>
@@ -43,19 +43,19 @@ wcsncpy(s1, s2, n)
size_t n;
{
wchar_t *p;
- const wchar_t *q;
_DIAGASSERT(s1 != NULL);
_DIAGASSERT(s2 != NULL);
- *s1 = '\0';
p = s1;
- q = s2;
- while (n && *q) {
- *p++ = *q++;
+ while (n && *s2) {
+ *p++ = *s2++;
+ n--;
+ }
+ while (n) {
+ *p++ = L'\0';
n--;
}
- *p = '\0';
return s1;
}