xref: /freebsd/lib/libc/locale/newlocale.3 (revision edf8578117e8844e02c0121147f45e4609b30680)
1.\" Copyright (c) 2011 The FreeBSD Foundation
2.\"
3.\" This documentation was written by David Chisnall under sponsorship from
4.\" the FreeBSD Foundation.
5.\"
6.\" Redistribution and use in source and binary forms, with or without
7.\" modification, are permitted provided that the following conditions
8.\" are met:
9.\" 1. Redistributions of source code must retain the above copyright
10.\"    notice, this list of conditions and the following disclaimer.
11.\" 2. Redistributions in binary form must reproduce the above copyright
12.\"    notice, this list of conditions and the following disclaimer in the
13.\"    documentation and/or other materials provided with the distribution.
14.\"
15.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
16.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
19.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
20.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
21.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
22.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
23.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
25.\" SUCH DAMAGE.
26.Dd October 2, 2020
27.Dt NEWLOCALE 3
28.Os
29.Sh NAME
30.Nm newlocale
31.Nd Creates a new locale
32.Sh LIBRARY
33.Lb libc
34.Sh SYNOPSIS
35.In locale.h
36.Ft locale_t
37.Fn newlocale "int mask" "const char * locale" "locale_t base"
38.Sh DESCRIPTION
39Creates a new locale, inheriting some properties from an existing locale.
40The
41.Fa mask
42defines the components that the new locale will have set to the locale with the
43name specified in the
44.Fa locale
45parameter.
46Any components not specified in
47.Fa mask
48will be inherited from the locale referenced by
49.Fa base ,
50if
51.Fa base
52is not
53.Dv NULL .
54If the call is successful, the state of the locale referenced by
55.Fa base
56is unspecified, and it must not be accessed.
57The special locale
58.Dv LC_GLOBAL_LOCALE
59may not be specified for
60.Fa base .
61The
62.Fa mask
63is either
64.Fa LC_ALL_MASK ,
65indicating all possible locale components,
66or the logical OR of some combination of the following:
67.Bl -tag -width "LC_MESSAGES_MASK" -offset indent
68.It LC_COLLATE_MASK
69The locale for string collation routines.
70This controls alphabetic ordering in
71.Xr strcoll 3
72and
73.Xr strxfrm 3 .
74.It LC_CTYPE_MASK
75The locale for the
76.Xr ctype 3
77and
78.Xr multibyte 3
79functions.
80This controls recognition of upper and lower case, alphabetic or
81non-alphabetic characters, and so on.
82.It LC_MESSAGES_MASK
83Set a locale for message catalogs, see
84.Xr catopen 3
85function.
86.It LC_MONETARY_MASK
87Set a locale for formatting monetary values; this affects
88the
89.Xr localeconv 3
90function.
91.It LC_NUMERIC_MASK
92Set a locale for formatting numbers.
93This controls the formatting of decimal points in input and output of floating
94point numbers in functions such as
95.Xr printf 3
96and
97.Xr scanf 3 ,
98as well as values returned by
99.Xr localeconv 3 .
100.It LC_TIME_MASK
101Set a locale for formatting dates and times using the
102.Xr strftime 3
103function.
104.El
105This function uses the same rules for loading locale components as
106.Xr setlocale 3 .
107.Sh RETURN VALUES
108Returns a new, valid,
109.Fa locale_t
110or NULL if an error occurs.
111You must free the returned locale with
112.Xr freelocale 3 .
113.Sh SEE ALSO
114.Xr duplocale 3 ,
115.Xr freelocale 3 ,
116.Xr localeconv 3 ,
117.Xr querylocale 3 ,
118.Xr uselocale 3 ,
119.Xr xlocale 3
120.Sh STANDARDS
121This function conforms to
122.St -p1003.1-2008 .
123