svn commit: r189361 - in head: include lib/libc/string

David Schultz das at FreeBSD.org
Tue Mar 3 22:01:28 PST 2009


Author: das
Date: Wed Mar  4 06:01:27 2009
New Revision: 189361
URL: http://svn.freebsd.org/changeset/base/189361

Log:
  Add wcpcpy(3) and wcpncpy(3).

Added:
  head/lib/libc/string/wcpcpy.c   (contents, props changed)
     - copied, changed from r189360, head/lib/libc/string/stpcpy.c
  head/lib/libc/string/wcpncpy.c   (contents, props changed)
     - copied, changed from r189360, head/lib/libc/string/stpncpy.c
Modified:
  head/include/wchar.h
  head/lib/libc/string/Makefile.inc
  head/lib/libc/string/Symbol.map
  head/lib/libc/string/wmemchr.3

Modified: head/include/wchar.h
==============================================================================
--- head/include/wchar.h	Wed Mar  4 03:47:57 2009	(r189360)
+++ head/include/wchar.h	Wed Mar  4 06:01:27 2009	(r189361)
@@ -213,6 +213,8 @@ int	wcwidth(wchar_t);
 #if __POSIX_VISIBLE >= 200809 || __BSD_VISIBLE
 size_t	mbsnrtowcs(wchar_t * __restrict, const char ** __restrict, size_t,
 	    size_t, mbstate_t * __restrict);
+wchar_t	*wcpcpy(wchar_t __restrict *, const wchar_t * __restrict);
+wchar_t	*wcpncpy(wchar_t __restrict *, const wchar_t * __restrict, size_t);
 wchar_t	*wcsdup(const wchar_t *) __malloc_like;
 int	wcscasecmp(const wchar_t *, const wchar_t *);
 int	wcsncasecmp(const wchar_t *, const wchar_t *, size_t n);

Modified: head/lib/libc/string/Makefile.inc
==============================================================================
--- head/lib/libc/string/Makefile.inc	Wed Mar  4 03:47:57 2009	(r189360)
+++ head/lib/libc/string/Makefile.inc	Wed Mar  4 06:01:27 2009	(r189361)
@@ -14,7 +14,7 @@ MISRCS+=bcmp.c bcopy.c bzero.c ffs.c ffs
 	strdup.c strerror.c strlcat.c strlcpy.c strlen.c strmode.c strncat.c \
 	strncmp.c strncpy.c strndup.c strnlen.c strnstr.c \
 	strpbrk.c strrchr.c strsep.c strsignal.c strspn.c strstr.c strtok.c \
-	strxfrm.c swab.c wcscasecmp.c wcscat.c \
+	strxfrm.c swab.c wcpcpy.c wcpncpy.c wcscasecmp.c wcscat.c \
 	wcschr.c wcscmp.c wcscoll.c wcscpy.c wcscspn.c wcsdup.c \
 	wcslcat.c wcslcpy.c wcslen.c wcsncasecmp.c wcsncat.c wcsncmp.c \
 	wcsncpy.c wcsnlen.c wcspbrk.c \
@@ -61,7 +61,9 @@ MLINKS+=strlen.3 strnlen.3
 MLINKS+=strstr.3 strcasestr.3 \
 	strstr.3 strnstr.3
 MLINKS+=strtok.3 strtok_r.3
-MLINKS+=wmemchr.3 wcscasecmp.3 \
+MLINKS+=wmemchr.3 wcpcpy.3 \
+	wmemchr.3 wcpncpy.3 \
+	wmemchr.3 wcscasecmp.3 \
 	wmemchr.3 wcscat.3 \
 	wmemchr.3 wcschr.3 \
 	wmemchr.3 wcscmp.3 \

Modified: head/lib/libc/string/Symbol.map
==============================================================================
--- head/lib/libc/string/Symbol.map	Wed Mar  4 03:47:57 2009	(r189360)
+++ head/lib/libc/string/Symbol.map	Wed Mar  4 06:01:27 2009	(r189361)
@@ -84,6 +84,8 @@ FBSD_1.1 {
 	stpncpy;
 	strndup;
 	strnlen;
+	wcpcpy;
+	wcpncpy;
 	wcscasecmp;
 	wcsncasecmp;
 	wcsnlen;

Copied and modified: head/lib/libc/string/wcpcpy.c (from r189360, head/lib/libc/string/stpcpy.c)
==============================================================================
--- head/lib/libc/string/stpcpy.c	Wed Mar  4 03:47:57 2009	(r189360, copy source)
+++ head/lib/libc/string/wcpcpy.c	Wed Mar  4 06:01:27 2009	(r189361)
@@ -35,10 +35,10 @@ static char sccsid[] = "@(#)strcpy.c	8.1
 #include <sys/cdefs.h>
 __FBSDID("$FreeBSD$");
 
-#include <string.h>
+#include <wchar.h>
 
-char *
-stpcpy(char * __restrict to, const char * __restrict from)
+wchar_t *
+wcpcpy(wchar_t * __restrict to, const wchar_t * __restrict from)
 {
 
 	for (; (*to = *from); ++from, ++to);

Copied and modified: head/lib/libc/string/wcpncpy.c (from r189360, head/lib/libc/string/stpncpy.c)
==============================================================================
--- head/lib/libc/string/stpncpy.c	Wed Mar  4 03:47:57 2009	(r189360, copy source)
+++ head/lib/libc/string/wcpncpy.c	Wed Mar  4 06:01:27 2009	(r189361)
@@ -27,17 +27,17 @@
 #include <sys/cdefs.h>
 __FBSDID("$FreeBSD$");
 
-#include <string.h>
+#include <wchar.h>
 
-char *
-stpncpy(char * __restrict dst, const char * __restrict src, size_t n)
+wchar_t *
+wcpncpy(wchar_t * __restrict dst, const wchar_t * __restrict src, size_t n)
 {
 
 	for (; n--; dst++, src++) {
 		if (!(*dst = *src)) {
-			char *ret = dst;
+			wchar_t *ret = dst;
 			while (n--)
-				*++dst = '\0';
+				*++dst = L'\0';
 			return (ret);
 		}
 	}

Modified: head/lib/libc/string/wmemchr.3
==============================================================================
--- head/lib/libc/string/wmemchr.3	Wed Mar  4 03:47:57 2009	(r189360)
+++ head/lib/libc/string/wmemchr.3	Wed Mar  4 06:01:27 2009	(r189361)
@@ -35,7 +35,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd February 28, 2009
+.Dd March 4, 2009
 .Dt WMEMCHR 3
 .Os
 .Sh NAME
@@ -44,6 +44,8 @@
 .Nm wmemcpy ,
 .Nm wmemmove ,
 .Nm wmemset ,
+.Nm wcpcpy ,
+.Nm wcpncpy ,
 .Nm wcscasecmp ,
 .Nm wcscat ,
 .Nm wcschr ,
@@ -78,6 +80,10 @@
 .Fn wmemmove "wchar_t *s1" "const wchar_t *s2" "size_t n"
 .Ft wchar_t *
 .Fn wmemset "wchar_t *s" "wchar_t c" "size_t n"
+.Ft wchar_t *
+.Fn wcpcpy "wchar_t *s1" "wchar_t *s2"
+.Ft wchar_t *
+.Fn wcpncpy "wchar_t *s1" "wchar_t *s2" "size_t n"
 .Ft int
 .Fn wcscasecmp "const wchar_t *s1" "const wchar_t *s2"
 .Ft wchar_t *
@@ -128,6 +134,8 @@ counterpart, such as
 .Xr memcpy 3 ,
 .Xr memmove 3 ,
 .Xr memset 3 ,
+.Xr stpcpy 3 ,
+.Xr stpncpy 3 ,
 .Xr strcasecmp 3 ,
 .Xr strcat 3 ,
 .Xr strchr 3 ,
@@ -150,6 +158,8 @@ counterpart, such as
 These functions conform to
 .St -isoC-99 ,
 with the exception of
+.Fn wcpcpy ,
+.Fn wcpncpy ,
 .Fn wcscasecmp ,
 .Fn wcsdup ,
 .Fn wcsncasecmp ,


More information about the svn-src-all mailing list