]> git.saurik.com Git - apple/libc.git/blob - string/FreeBSD/wcsxfrm.3
Libc-1081.1.3.tar.gz
[apple/libc.git] / string / FreeBSD / wcsxfrm.3
1 .\" Copyright (c) 1990, 1991, 1993
2 .\" The Regents of the University of California. All rights reserved.
3 .\"
4 .\" This code is derived from software contributed to Berkeley by
5 .\" Chris Torek and the American National Standards Committee X3,
6 .\" on Information Processing Systems.
7 .\"
8 .\" Redistribution and use in source and binary forms, with or without
9 .\" modification, are permitted provided that the following conditions
10 .\" are met:
11 .\" 1. Redistributions of source code must retain the above copyright
12 .\" notice, this list of conditions and the following disclaimer.
13 .\" 2. Redistributions in binary form must reproduce the above copyright
14 .\" notice, this list of conditions and the following disclaimer in the
15 .\" documentation and/or other materials provided with the distribution.
16 .\" 4. Neither the name of the University nor the names of its contributors
17 .\" may be used to endorse or promote products derived from this software
18 .\" without specific prior written permission.
19 .\"
20 .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
21 .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23 .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
24 .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25 .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
26 .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
27 .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
28 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
29 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
30 .\" SUCH DAMAGE.
31 .\"
32 .\" @(#)strxfrm.3 8.1 (Berkeley) 6/4/93
33 .\" FreeBSD: src/lib/libc/string/strxfrm.3,v 1.16 2002/09/06 11:24:06 tjr Exp
34 .\" $FreeBSD: src/lib/libc/string/wcsxfrm.3,v 1.3 2007/01/09 00:28:12 imp Exp $
35 .\"
36 .Dd October 4, 2002
37 .Dt WCSXFRM 3
38 .Os
39 .Sh NAME
40 .Nm wcsxfrm ,
41 .Nm wcsxfrm_l
42 .Nd transform a wide string under locale
43 .Sh LIBRARY
44 .Lb libc
45 .Sh SYNOPSIS
46 .In wchar.h
47 .Ft size_t
48 .Fo wcsxfrm
49 .Fa "wchar_t *restrict ws1"
50 .Fa "const wchar_t *restrict ws2"
51 .Fa "size_t n"
52 .Fc
53 .In wchar.h
54 .In xlocale.h
55 .Ft size_t
56 .Fo wcsxfrm_l
57 .Fa "wchar_t *restrict ws1"
58 .Fa "const wchar_t *restrict ws2"
59 .Fa "size_t n"
60 .Fa "locale_t loc"
61 .Fc
62 .Sh DESCRIPTION
63 The
64 .Fn wcsxfrm
65 function transforms a null-terminated wide character string pointed to by
66 .Fa ws2 ,
67 according to the current locale's collation order,
68 then copies the transformed string into
69 .Fa ws1 .
70 No more than
71 .Fa n
72 wide characters are copied into
73 .Fa ws1 ,
74 including the terminating null character.
75 If
76 .Fa n
77 is set to 0
78 (it helps to determine an actual size needed
79 for transformation),
80 .Fa ws1
81 is permitted to be a
82 .Dv NULL
83 pointer.
84 .Pp
85 Comparing two strings using
86 .Fn wcscmp
87 after
88 .Fn wcsxfrm
89 is equivalent to comparing
90 two original strings with
91 .Fn wcscoll .
92 .Pp
93 Although the
94 .Fn wcsxfrm
95 function uses the current locale, the
96 .Fn wcsxfrm_l
97 function may be passed a locale directly. See
98 .Xr xlocale 3
99 for more information.
100 .Sh RETURN VALUES
101 Upon successful completion,
102 .Fn wcsxfrm
103 returns the length of the transformed string not including
104 the terminating null character.
105 If this value is
106 .Fa n
107 or more, the contents of
108 .Fa ws1
109 are indeterminate.
110 .Sh SEE ALSO
111 .Xr setlocale 3 ,
112 .Xr strxfrm 3 ,
113 .Xr wcscmp 3 ,
114 .Xr wcscoll 3 ,
115 .Xr xlocale 3
116 .Sh STANDARDS
117 The
118 .Fn wcsxfrm
119 function
120 conforms to
121 .St -isoC-99 .
122 .Sh BUGS
123 The current implementation of
124 .Fn wcsxfrm
125 only works in single-byte
126 .Dv LC_CTYPE
127 locales, and falls back to using
128 .Fn wcsncpy
129 in locales with extended character sets.
130 .Pp
131 Comparing two strings using
132 .Fn wcscmp
133 after
134 .Fn wcsxfrm
135 is
136 .Em not
137 always equivalent to comparison with
138 .Fn wcscoll ;
139 .Fn wcsxfrm
140 only stores information about primary collation weights into
141 .Fa ws1 ,
142 whereas
143 .Fn wcscoll
144 compares characters using both primary and secondary weights.