Source-Changes-D archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: CVS commit: src/lib/libc/locale



Hi!

Thanks for the man pages.

There is none for uselocale(3), which is heavily referenced from
these, nor do I find a prototype in /usr/include...
so how does one use these? :)
 Thomas

On Mon, Feb 15, 2021 at 09:35:04AM -0500, Christos Zoulas wrote:
> Module Name:	src
> Committed By:	christos
> Date:		Mon Feb 15 14:35:04 UTC 2021
> 
> Modified Files:
> 	src/lib/libc/locale: Makefile.inc
> Added Files:
> 	src/lib/libc/locale: duplocale.3 freelocale.3 newlocale.3
> 
> Log Message:
> Add missing man pages (from FreeBSD)
> 
> 
> To generate a diff of this commit:
> cvs rdiff -u -r1.64 -r1.65 src/lib/libc/locale/Makefile.inc
> cvs rdiff -u -r0 -r1.1 src/lib/libc/locale/duplocale.3 \
>     src/lib/libc/locale/freelocale.3 src/lib/libc/locale/newlocale.3
> 
> Please note that diffs are not public domain; they are subject to the
> copyright notices on the relevant files.
> 

> Modified files:
> 
> Index: src/lib/libc/locale/Makefile.inc
> diff -u src/lib/libc/locale/Makefile.inc:1.64 src/lib/libc/locale/Makefile.inc:1.65
> --- src/lib/libc/locale/Makefile.inc:1.64	Sun Aug 18 16:03:48 2013
> +++ src/lib/libc/locale/Makefile.inc	Mon Feb 15 09:35:04 2021
> @@ -1,5 +1,5 @@
>  #	from: @(#)Makefile.inc	5.1 (Berkeley) 2/18/91
> -#	$NetBSD: Makefile.inc,v 1.64 2013/08/18 20:03:48 joerg Exp $
> +#	$NetBSD: Makefile.inc,v 1.65 2021/02/15 14:35:04 christos Exp $
>  
>  # locale sources
>  .PATH: ${ARCHDIR}/locale ${.CURDIR}/locale
> @@ -21,7 +21,7 @@ CPPFLAGS.runetable.c+=		-I${LIBCDIR}/cit
>  CPPFLAGS.multibyte_c90.c+=	-I${LIBCDIR}/citrus
>  CPPFLAGS.multibyte_amd1.c+=	-I${LIBCDIR}/citrus
>  
> -MAN+=	setlocale.3 nl_langinfo.3
> +MAN+=	duplocale.3 freelocale.3 newlocale.3 setlocale.3 nl_langinfo.3 
>  
>  MAN+=	mbtowc.3 mbstowcs.3 wctomb.3 wcstombs.3 mblen.3 \
>  
> 
> Added files:
> 
> Index: src/lib/libc/locale/duplocale.3
> diff -u /dev/null src/lib/libc/locale/duplocale.3:1.1
> --- /dev/null	Mon Feb 15 09:35:04 2021
> +++ src/lib/libc/locale/duplocale.3	Mon Feb 15 09:35:04 2021
> @@ -0,0 +1,80 @@
> +.\" $NetBSD: duplocale.3,v 1.1 2021/02/15 14:35:04 christos Exp $
> +.\" Copyright (c) 2011 The FreeBSD Foundation
> +.\" All rights reserved.
> +.\"
> +.\" This documentation was written by David Chisnall under sponsorship from
> +.\" the FreeBSD Foundation.
> +.\"
> +.\" Redistribution and use in source and binary forms, with or without
> +.\" modification, are permitted provided that the following conditions
> +.\" are met:
> +.\" 1. Redistributions of source code must retain the above copyright
> +.\"    notice, this list of conditions and the following disclaimer.
> +.\" 2. Redistributions in binary form must reproduce the above copyright
> +.\"    notice, this list of conditions and the following disclaimer in the
> +.\"    documentation and/or other materials provided with the distribution.
> +.\"
> +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
> +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
> +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
> +.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
> +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
> +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
> +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
> +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
> +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
> +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
> +.\" SUCH DAMAGE.
> +.\"
> +.\" $FreeBSD: head/lib/libc/locale/duplocale.3 281925 2015-04-24 10:17:55Z theraven $
> +.\"
> +.Dd September 17, 2011
> +.Dt DUPLOCALE 3
> +.Os
> +.Sh NAME
> +.Nm duplocale
> +.Nd duplicate an locale
> +.Sh LIBRARY
> +.Lb libc
> +.Sh SYNOPSIS
> +.In locale.h
> +.Ft locale_t
> +.Fn duplocale "locale_t locale"
> +.Sh DESCRIPTION
> +Duplicates an existing
> +.Fa locale_t
> +returning a new
> +.Fa locale_t
> +that refers to the same locale values but has an independent internal state.
> +Various functions, such as
> +.Xr mblen 3
> +require a persistent state.
> +These functions formerly used static variables and calls to them from multiple
> +threads had undefined behavior.
> +They now use fields in the
> +.Fa locale_t
> +associated with the current thread by
> +.Xr uselocale 3 .
> +These calls are therefore only thread safe on threads with a unique per-thread
> +locale.
> +The locale returned by this call must be freed with
> +.Xr freelocale 3 .
> +.Sh SEE ALSO
> +.Xr freelocale 3 ,
> +.Xr localeconv 3 ,
> +.Xr newlocale 3 ,
> +.\" .Xr querylocale 3 ,
> +.Xr uselocale 3 ,
> +.\" .Xr xlocale 3
> +.Sh STANDARDS
> +This function conforms to
> +.St -p1003.1-2008 .
> +.Sh BUGS
> +Ideally,
> +.Xr uselocale 3
> +should make a copy of the
> +.Fa locale_t
> +implicitly to ensure thread safety,
> +and a copy of the global locale should be installed lazily on each thread.
> +The FreeBSD implementation does not do this,
> +for compatibility with Darwin.
> Index: src/lib/libc/locale/freelocale.3
> diff -u /dev/null src/lib/libc/locale/freelocale.3:1.1
> --- /dev/null	Mon Feb 15 09:35:04 2021
> +++ src/lib/libc/locale/freelocale.3	Mon Feb 15 09:35:04 2021
> @@ -0,0 +1,60 @@
> +.\" $NetBSD: freelocale.3,v 1.1 2021/02/15 14:35:04 christos Exp $
> +.\" Copyright (c) 2011 The FreeBSD Foundation
> +.\" All rights reserved.
> +.\"
> +.\" This documentation was written by David Chisnall under sponsorship from
> +.\" the FreeBSD Foundation.
> +.\"
> +.\" Redistribution and use in source and binary forms, with or without
> +.\" modification, are permitted provided that the following conditions
> +.\" are met:
> +.\" 1. Redistributions of source code must retain the above copyright
> +.\"    notice, this list of conditions and the following disclaimer.
> +.\" 2. Redistributions in binary form must reproduce the above copyright
> +.\"    notice, this list of conditions and the following disclaimer in the
> +.\"    documentation and/or other materials provided with the distribution.
> +.\"
> +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
> +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
> +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
> +.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
> +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
> +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
> +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
> +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
> +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
> +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
> +.\" SUCH DAMAGE.
> +.\"
> +.\" $FreeBSD: head/lib/libc/locale/freelocale.3 303495 2016-07-29 17:18:47Z ed $
> +.Dd July 26, 2016
> +.Dt FREELOCALE 3
> +.Os
> +.Sh NAME
> +.Nm freelocale
> +.Nd Frees a locale created with
> +.Xr duplocale 3
> +or
> +.Xr newlocale 3
> +.Sh LIBRARY
> +.Lb libc
> +.Sh SYNOPSIS
> +.In locale.h
> +.Ft void
> +.Fn freelocale "locale_t locale"
> +.Sh DESCRIPTION
> +Frees a
> +.Fa locale_t .
> +This relinquishes any resources held exclusively by this locale.
> +Note that locales share reference-counted components,
> +so a call to this function is not guaranteed to free all of the components.
> +.Sh SEE ALSO
> +.Xr duplocale 3 ,
> +.Xr localeconv 3 ,
> +.Xr newlocale 3 ,
> +.\" .Xr querylocale 3 ,
> +.Xr uselocale 3 ,
> +.\" .Xr xlocale 3
> +.Sh STANDARDS
> +This function conforms to
> +.St -p1003.1-2008 .
> Index: src/lib/libc/locale/newlocale.3
> diff -u /dev/null src/lib/libc/locale/newlocale.3:1.1
> --- /dev/null	Mon Feb 15 09:35:04 2021
> +++ src/lib/libc/locale/newlocale.3	Mon Feb 15 09:35:04 2021
> @@ -0,0 +1,126 @@
> +.\" $NetBSD: newlocale.3,v 1.1 2021/02/15 14:35:04 christos Exp $
> +.\" Copyright (c) 2011 The FreeBSD Foundation
> +.\" All rights reserved.
> +.\"
> +.\" This documentation was written by David Chisnall under sponsorship from
> +.\" the FreeBSD Foundation.
> +.\"
> +.\" Redistribution and use in source and binary forms, with or without
> +.\" modification, are permitted provided that the following conditions
> +.\" are met:
> +.\" 1. Redistributions of source code must retain the above copyright
> +.\"    notice, this list of conditions and the following disclaimer.
> +.\" 2. Redistributions in binary form must reproduce the above copyright
> +.\"    notice, this list of conditions and the following disclaimer in the
> +.\"    documentation and/or other materials provided with the distribution.
> +.\"
> +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
> +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
> +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
> +.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
> +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
> +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
> +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
> +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
> +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
> +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
> +.\" SUCH DAMAGE.
> +.\"
> +.\" $FreeBSD: head/lib/libc/locale/newlocale.3 366375 2020-10-02 18:35:55Z markj $
> +.Dd October 2, 2020
> +.Dt NEWLOCALE 3
> +.Os
> +.Sh NAME
> +.Nm newlocale
> +.Nd Creates a new locale
> +.Sh LIBRARY
> +.Lb libc
> +.Sh SYNOPSIS
> +.In locale.h
> +.Ft locale_t
> +.Fn newlocale "int mask" "const char * locale" "locale_t base"
> +.Sh DESCRIPTION
> +Creates a new locale, inheriting some properties from an existing locale.
> +The
> +.Fa mask
> +defines the components that the new locale will have set to the locale with the
> +name specified in the
> +.Fa locale
> +parameter.
> +Any components not specified in
> +.Fa mask
> +will be inherited from the locale referenced by
> +.Fa base ,
> +if
> +.Fa base
> +is not
> +.Dv NULL .
> +If the call is successful, the state of the locale referenced by
> +.Fa base
> +is unspecified, and it must not be accessed.
> +The special locale
> +.Dv LC_GLOBAL_LOCALE
> +may not be specified for
> +.Fa base .
> +The
> +.Fa mask
> +is either
> +.Fa LC_ALL_MASK ,
> +indicating all possible locale components,
> +or the logical OR of some combination of the following:
> +.Bl -tag -width "LC_MESSAGES_MASK" -offset indent
> +.It LC_COLLATE_MASK
> +The locale for string collation routines.
> +This controls alphabetic ordering in
> +.Xr strcoll 3
> +and
> +.Xr strxfrm 3 .
> +.It LC_CTYPE_MASK
> +The locale for the
> +.Xr ctype 3
> +and
> +.Xr multibyte 3
> +functions.
> +This controls recognition of upper and lower case, alphabetic or
> +non-alphabetic characters, and so on.
> +.It LC_MESSAGES_MASK
> +Set a locale for message catalogs, see
> +.Xr catopen 3
> +function.
> +.It LC_MONETARY_MASK
> +Set a locale for formatting monetary values; this affects
> +the
> +.Xr localeconv 3
> +function.
> +.It LC_NUMERIC_MASK
> +Set a locale for formatting numbers.
> +This controls the formatting of decimal points in input and output of floating
> +point numbers in functions such as
> +.Xr printf 3
> +and
> +.Xr scanf 3 ,
> +as well as values returned by
> +.Xr localeconv 3 .
> +.It LC_TIME_MASK
> +Set a locale for formatting dates and times using the
> +.Xr strftime 3
> +function.
> +.El
> +This function uses the same rules for loading locale components as
> +.Xr setlocale 3 .
> +.Sh RETURN VALUES
> +Returns a new, valid,
> +.Fa locale_t
> +or NULL if an error occurs.
> +You must free the returned locale with
> +.Xr freelocale 3 .
> +.Sh SEE ALSO
> +.Xr duplocale 3 ,
> +.Xr freelocale 3 ,
> +.Xr localeconv 3 ,
> +\" .Xr querylocale 3 ,
> +.Xr uselocale 3 ,
> +\" .Xr xlocale 3
> +.Sh STANDARDS
> +This function conforms to
> +.St -p1003.1-2008 .
> 



Home | Main Index | Thread Index | Old Index