]> sourceware.org Git - newlib-cygwin.git/commitdiff
* libc/include/wchar.h: Add prototype for wcsxfrm.
authorCorinna Vinschen <corinna@vinschen.de>
Wed, 4 Jul 2007 16:18:34 +0000 (16:18 +0000)
committerCorinna Vinschen <corinna@vinschen.de>
Wed, 4 Jul 2007 16:18:34 +0000 (16:18 +0000)
* libc/string/Makefile.am (GENERAL_SOURCES): Add wcsxfrm.c.
(CHEWOUT_FILES): Add wcsxfrm.def.
* libc/string/Makefile.in: Regenerate.
* libc/string/wcsxfrm.c: New file.
* libc/string/wcstrings.tex: Add wcsxfrm.

newlib/ChangeLog
newlib/libc/include/wchar.h
newlib/libc/string/Makefile.am
newlib/libc/string/Makefile.in
newlib/libc/string/wcstrings.tex
newlib/libc/string/wcsxfrm.c [new file with mode: 0644]

index bd610389ac56652bdd355baaf3a87d8d155b33f1..aa10c13bebc7a8154f4dadce69b48a04e8ee8028 100644 (file)
@@ -1,3 +1,12 @@
+2007-07-04  Corinna Vinschen  <corinna@vinschen.de>
+
+       * libc/include/wchar.h: Add prototype for wcsxfrm.
+       * libc/string/Makefile.am (GENERAL_SOURCES): Add wcsxfrm.c.
+       (CHEWOUT_FILES): Add wcsxfrm.def.
+       * libc/string/Makefile.in: Regenerate.
+       * libc/string/wcsxfrm.c: New file.
+       * libc/string/wcstrings.tex: Add wcsxfrm.
+
 2007-06-28  Corinna Vinschen  <corinna@vinschen.de>
 
        * libc/include/string.h: Add prototypes for stpcpy and stpncpy.
index eeabd35c1bd910672b45c77358c9dca9c0e14abe..dfc8c68d2f88e7a83c05e7b62ded6929e0333e5d 100644 (file)
@@ -71,6 +71,7 @@ wchar_t       *_EXFUN(wcsrchr, (const wchar_t *, wchar_t));
 size_t _EXFUN(wcsspn, (const wchar_t *, const wchar_t *));
 wchar_t        *_EXFUN(wcsstr, (const wchar_t *, const wchar_t *));
 int    _EXFUN(wcswidth, (const wchar_t *, size_t));
+size_t _EXFUN(wcsxfrm, (wchar_t *, const wchar_t *, size_t));
 int    _EXFUN(wcwidth, (const wchar_t));
 wchar_t        *_EXFUN(wmemchr, (const wchar_t *, wchar_t, size_t));
 int    _EXFUN(wmemcmp, (const wchar_t *, const wchar_t *, size_t));
index 94d1868fa7c9bc57966386403dcb4dfd0991262c..7c2778b139fc37466974ef3cf221aa09779b07bb 100644 (file)
@@ -63,6 +63,7 @@ GENERAL_SOURCES = \
        wcsspn.c \
        wcsstr.c \
        wcswidth.c \
+       wcsxfrm.c \
        wcwidth.c \
        wmemchr.c \
        wmemcmp.c \
@@ -113,7 +114,7 @@ wcscpy.def  wcscspn.def \
 wcslcat.def    wcslcpy.def     wcslen.def      wcsncat.def \
 wcsncmp.def    wcsncpy.def     wcsnlen.def     wcspbrk.def \
 wcsrchr.def    wcsspn.def      wcsstr.def \
-wcswidth.def   wcwidth.def     wmemchr.def \
+wcswidth.def   wcsxfrm.def     wcwidth.def     wmemchr.def \
 wmemcmp.def    wmemcpy.def     wmemmove.def    wmemset.def
 
 SUFFIXES = .def
index 8c5406cf0ae7a9bed2e4a655b1a3061946588eda..687725943af6c9099a217071cc0ba63ad733df16 100644 (file)
@@ -84,9 +84,10 @@ am__objects_1 = lib_a-bcopy.$(OBJEXT) lib_a-bzero.$(OBJEXT) \
        lib_a-wcsnlen.$(OBJEXT) lib_a-wcspbrk.$(OBJEXT) \
        lib_a-wcsrchr.$(OBJEXT) lib_a-wcsspn.$(OBJEXT) \
        lib_a-wcsstr.$(OBJEXT) lib_a-wcswidth.$(OBJEXT) \
-       lib_a-wcwidth.$(OBJEXT) lib_a-wmemchr.$(OBJEXT) \
-       lib_a-wmemcmp.$(OBJEXT) lib_a-wmemcpy.$(OBJEXT) \
-       lib_a-wmemmove.$(OBJEXT) lib_a-wmemset.$(OBJEXT)
+       lib_a-wcsxfrm.$(OBJEXT) lib_a-wcwidth.$(OBJEXT) \
+       lib_a-wmemchr.$(OBJEXT) lib_a-wmemcmp.$(OBJEXT) \
+       lib_a-wmemcpy.$(OBJEXT) lib_a-wmemmove.$(OBJEXT) \
+       lib_a-wmemset.$(OBJEXT)
 @ELIX_LEVEL_1_FALSE@am__objects_2 = lib_a-bcmp.$(OBJEXT) \
 @ELIX_LEVEL_1_FALSE@   lib_a-memccpy.$(OBJEXT) \
 @ELIX_LEVEL_1_FALSE@   lib_a-mempcpy.$(OBJEXT) \
@@ -111,8 +112,8 @@ am__objects_3 = bcopy.lo bzero.lo index.lo memchr.lo memcmp.lo \
        wcschr.lo wcscmp.lo wcscoll.lo wcscpy.lo wcscspn.lo \
        wcslcat.lo wcslcpy.lo wcslen.lo wcsncat.lo wcsncmp.lo \
        wcsncpy.lo wcsnlen.lo wcspbrk.lo wcsrchr.lo wcsspn.lo wcsstr.lo \
-       wcswidth.lo wcwidth.lo wmemchr.lo wmemcmp.lo wmemcpy.lo \
-       wmemmove.lo wmemset.lo
+       wcswidth.lo wcsxfrm.lo wcwidth.lo wmemchr.lo wmemcmp.lo \
+       wmemcpy.lo wmemmove.lo wmemset.lo
 @ELIX_LEVEL_1_FALSE@am__objects_4 = bcmp.lo memccpy.lo mempcpy.lo \
 @ELIX_LEVEL_1_FALSE@   stpcpy.lo stpncpy.lo strndup.lo \
 @ELIX_LEVEL_1_FALSE@   strcasestr.lo strndup_r.lo
@@ -354,6 +355,7 @@ GENERAL_SOURCES = \
        wcsspn.c \
        wcsstr.c \
        wcswidth.c \
+       wcsxfrm.c \
        wcwidth.c \
        wmemchr.c \
        wmemcmp.c \
@@ -394,7 +396,7 @@ wcscpy.def  wcscspn.def \
 wcslcat.def    wcslcpy.def     wcslen.def      wcsncat.def \
 wcsncmp.def    wcsncpy.def     wcsnlen.def     wcspbrk.def \
 wcsrchr.def    wcsspn.def      wcsstr.def \
-wcswidth.def   wcwidth.def     wmemchr.def \
+wcswidth.def   wcsxfrm.def     wcwidth.def     wmemchr.def \
 wmemcmp.def    wmemcpy.def     wmemmove.def    wmemset.def
 
 SUFFIXES = .def
@@ -816,6 +818,12 @@ lib_a-wcswidth.o: wcswidth.c
 lib_a-wcswidth.obj: wcswidth.c
        $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-wcswidth.obj `if test -f 'wcswidth.c'; then $(CYGPATH_W) 'wcswidth.c'; else $(CYGPATH_W) '$(srcdir)/wcswidth.c'; fi`
 
+lib_a-wcsxfrm.o: wcsxfrm.c
+       $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-wcsxfrm.o `test -f 'wcsxfrm.c' || echo '$(srcdir)/'`wcsxfrm.c
+
+lib_a-wcsxfrm.obj: wcsxfrm.c
+       $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-wcsxfrm.obj `if test -f 'wcsxfrm.c'; then $(CYGPATH_W) 'wcsxfrm.c'; else $(CYGPATH_W) '$(srcdir)/wcsxfrm.c'; fi`
+
 lib_a-wcwidth.o: wcwidth.c
        $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-wcwidth.o `test -f 'wcwidth.c' || echo '$(srcdir)/'`wcwidth.c
 
index df6edc47c8f71ad61fe7c01cc0927934f3b0509a..04a95f6de39c0cbd4230224cbd8f0a0b035d2cf1 100644 (file)
@@ -29,6 +29,7 @@ declarations are in @file{wchar.h}.
 * wcsspn::      Find initial match in wide-character string
 * wcsstr::      Find wide-character string segment
 * wcswidth::    Number of column positions of a wide-character string
+* wcsxfrm::     Locale-specific wide-character string transformation
 * wcwidth::     Number of column positions of a wide-character code
 @end menu
 
@@ -101,6 +102,9 @@ declarations are in @file{wchar.h}.
 @page
 @include string/wcswidth.def
 
+@page
+@include string/wcsxfrm.def
+
 @page
 @include string/wcwidth.def
 
diff --git a/newlib/libc/string/wcsxfrm.c b/newlib/libc/string/wcsxfrm.c
new file mode 100644 (file)
index 0000000..439bdd0
--- /dev/null
@@ -0,0 +1,52 @@
+/*
+FUNCTION
+       <<wcsxfrm>>---locale-specific wide-character string transformation
+       
+INDEX
+       wcsxfrm
+
+ANSI_SYNOPSIS
+       #include <wchar.h>
+       int wcsxfrm(wchar_t *<[stra]>, const wchar_t * <[strb]>, size_t <[n]>);
+
+TRAD_SYNOPSIS
+       #include <wchar.h>
+       size_t wcsxfrm(<[stra]>, <[strb]>, <[n]>)
+       wchar_t *<[stra]>;
+       wchar_t *<[strb]>;
+       size_t   <[n]>
+
+DESCRIPTION
+       <<wcsxfrm>> transforms the wide-character string pointed to by
+       <[strb]> to the wide-character string pointed to by <[stra]>,
+       Comparing two transformed wide strings with <<wcscmp>> should return
+       the same result as comparing the original strings with <<wcscoll>>.
+       No more than <[n]> wide characters are transformed, including the
+       trailing null character.
+
+       If <[n]> is 0, <[stra]> may be a NULL pointer.
+
+       The current implementation of <<wcsxfrm>> simply uses <<wcslcpy>>
+       and does not support any language-specific transformations.
+
+RETURNS
+       <<wcsxfrm>> returns the length of the transformed wide character
+       string.  if the return value is greater or equal to <[n]>, the
+       content of <[stra]> is undefined.
+
+PORTABILITY
+<<wcsxfrm>> is ISO/IEC 9899/AMD1:1995 (ISO C).
+*/
+
+#include <_ansi.h>
+#include <wchar.h>
+
+size_t
+_DEFUN (wcsxfrm, (a, b, n),
+       wchar_t *a _AND
+       _CONST wchar_t *b _AND
+       size_t n)
+
+{
+  return wcslcpy (a, b, n);
+}
This page took 0.053339 seconds and 5 git commands to generate.