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