]> git.saurik.com Git - apple/libc.git/blame - string/FreeBSD/wcsxfrm.3
Libc-1439.40.11.tar.gz
[apple/libc.git] / string / FreeBSD / wcsxfrm.3
CommitLineData
5b2abdfb 1.\" Copyright (c) 1990, 1991, 1993
e9ce8d39
A
2.\" The Regents of the University of California. All rights reserved.
3.\"
5b2abdfb
A
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.\"
e9ce8d39
A
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.
e9ce8d39
A
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.\"
5b2abdfb 32.\" @(#)strxfrm.3 8.1 (Berkeley) 6/4/93
9385eb3d 33.\" FreeBSD: src/lib/libc/string/strxfrm.3,v 1.16 2002/09/06 11:24:06 tjr Exp
1f2f436a 34.\" $FreeBSD: src/lib/libc/string/wcsxfrm.3,v 1.3 2007/01/09 00:28:12 imp Exp $
e9ce8d39 35.\"
9385eb3d
A
36.Dd October 4, 2002
37.Dt WCSXFRM 3
e9ce8d39
A
38.Os
39.Sh NAME
ad3c9f2a
A
40.Nm wcsxfrm ,
41.Nm wcsxfrm_l
9385eb3d 42.Nd transform a wide string under locale
e9ce8d39
A
43.Sh LIBRARY
44.Lb libc
45.Sh SYNOPSIS
9385eb3d 46.In wchar.h
5b2abdfb 47.Ft size_t
ad3c9f2a
A
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
e9ce8d39
A
62.Sh DESCRIPTION
63The
9385eb3d
A
64.Fn wcsxfrm
65function transforms a null-terminated wide character string pointed to by
ad3c9f2a
A
66.Fa ws2 ,
67according to the current locale's collation order,
68then copies the transformed string into
69.Fa ws1 .
9385eb3d 70No more than
5b2abdfb 71.Fa n
9385eb3d 72wide characters are copied into
ad3c9f2a
A
73.Fa ws1 ,
74including the terminating null character.
e9ce8d39 75If
5b2abdfb
A
76.Fa n
77is set to 0
78(it helps to determine an actual size needed
79for transformation),
ad3c9f2a 80.Fa ws1
9385eb3d
A
81is permitted to be a
82.Dv NULL
83pointer.
5b2abdfb
A
84.Pp
85Comparing two strings using
9385eb3d 86.Fn wcscmp
5b2abdfb 87after
9385eb3d
A
88.Fn wcsxfrm
89is equivalent to comparing
5b2abdfb 90two original strings with
9385eb3d 91.Fn wcscoll .
ad3c9f2a
A
92.Pp
93Although the
94.Fn wcsxfrm
95function uses the current locale, the
96.Fn wcsxfrm_l
97function may be passed a locale directly. See
98.Xr xlocale 3
99for more information.
e9ce8d39 100.Sh RETURN VALUES
5b2abdfb 101Upon successful completion,
9385eb3d 102.Fn wcsxfrm
5b2abdfb
A
103returns the length of the transformed string not including
104the terminating null character.
105If this value is
106.Fa n
107or more, the contents of
ad3c9f2a 108.Fa ws1
5b2abdfb 109are indeterminate.
e9ce8d39 110.Sh SEE ALSO
5b2abdfb 111.Xr setlocale 3 ,
9385eb3d
A
112.Xr strxfrm 3 ,
113.Xr wcscmp 3 ,
ad3c9f2a
A
114.Xr wcscoll 3 ,
115.Xr xlocale 3
5b2abdfb 116.Sh STANDARDS
e9ce8d39 117The
9385eb3d 118.Fn wcsxfrm
5b2abdfb
A
119function
120conforms to
9385eb3d
A
121.St -isoC-99 .
122.Sh BUGS
123The current implementation of
124.Fn wcsxfrm
125only works in single-byte
126.Dv LC_CTYPE
127locales, and falls back to using
128.Fn wcsncpy
129in locales with extended character sets.
130.Pp
131Comparing two strings using
132.Fn wcscmp
133after
134.Fn wcsxfrm
135is
136.Em not
137always equivalent to comparison with
138.Fn wcscoll ;
139.Fn wcsxfrm
140only stores information about primary collation weights into
ad3c9f2a 141.Fa ws1 ,
9385eb3d
A
142whereas
143.Fn wcscoll
144compares characters using both primary and secondary weights.