From fbc3e8c31c418a7cc18e687f64d074630eac3c00 Mon Sep 17 00:00:00 2001 From: Ingo Schwarze Date: Wed, 4 Apr 2018 14:53:03 +0000 Subject: Split the useless localeconv(3) function out of the important setlocale(3) manual page, such that the latter becomes easier to read. No text change. --- lib/libc/locale/Makefile.inc | 4 +- lib/libc/locale/localeconv.3 | 188 +++++++++++++++++++++++++++++++++++++++++++ lib/libc/locale/setlocale.3 | 148 ++-------------------------------- 3 files changed, 195 insertions(+), 145 deletions(-) create mode 100644 lib/libc/locale/localeconv.3 (limited to 'lib/libc/locale') diff --git a/lib/libc/locale/Makefile.inc b/lib/libc/locale/Makefile.inc index 253d7827e8b..2f13ffcdcee 100644 --- a/lib/libc/locale/Makefile.inc +++ b/lib/libc/locale/Makefile.inc @@ -1,4 +1,4 @@ -# $OpenBSD: Makefile.inc,v 1.23 2017/09/05 03:16:13 schwarze Exp $ +# $OpenBSD: Makefile.inc,v 1.24 2018/04/04 14:53:02 schwarze Exp $ # locale sources .PATH: ${LIBCSRCDIR}/locale @@ -15,7 +15,7 @@ SRCS+= btowc.c _def_messages.c _def_monetary.c _def_numeric.c _def_time.c \ runeglue.c rune.c runetable.c ___runetype_mb.c \ _wctrans.c wcsxfrm.c wcsxfrm_l.c -MAN+= nl_langinfo.3 setlocale.3 newlocale.3 uselocale.3 \ +MAN+= nl_langinfo.3 setlocale.3 newlocale.3 uselocale.3 localeconv.3 \ iswalnum.3 towlower.3 \ btowc.3 mblen.3 mbrlen.3 mbrtowc.3 mbsinit.3 mbsrtowcs.3 \ mbstowcs.3 mbtowc.3 wcrtomb.3 wcscoll.3 wcsrtombs.3 wcstod.3 \ diff --git a/lib/libc/locale/localeconv.3 b/lib/libc/locale/localeconv.3 new file mode 100644 index 00000000000..31ec14f6eb3 --- /dev/null +++ b/lib/libc/locale/localeconv.3 @@ -0,0 +1,188 @@ +.\" $OpenBSD: localeconv.3,v 1.1 2018/04/04 14:53:02 schwarze Exp $ +.\" $NetBSD: setlocale.3,v 1.3 1997/07/14 23:19:47 kleink Exp $ +.\" +.\" Copyright (c) 1993 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" This code is derived from software contributed to Berkeley by +.\" Donn Seeley at BSDI. +.\" +.\" 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. +.\" 3. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" 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. +.\" +.\" @(#)setlocale.3 8.1 (Berkeley) 6/9/93 +.\" +.Dd $Mdocdate: April 4 2018 $ +.Dt LOCALECONV 3 +.Os +.Sh NAME +.Nm localeconv +.Nd retrieve parameters for locale-dependent formatting of numbers +.Sh SYNOPSIS +.In locale.h +.Ft struct lconv * +.Fn localeconv "void" +.Sh DESCRIPTION +The +.Fn localeconv +function returns a pointer to a static structure +which provides parameters for +.Xr locale 1 Ns -dependent +formatting of numbers. +On +.Ox , +nothing in the returned structure ever changes. +.Pp +It provides the following fields of type +.Vt char * : +.Bl -tag -width mon_decimal_point +.It Fa decimal_point +The decimal point character, except for currency values. +.It Fa thousands_sep +The separator between groups of digits +before the decimal point, except for currency values. +.It Fa grouping +The sizes of the groups of digits, except for currency values. +This is a pointer to a vector of integers, each of size +.Li char , +representing group size from low order digit groups +to high order (right to left). +The list may be terminated with 0 or +.Dv CHAR_MAX . +If the list is terminated with 0, +the last group size before the 0 is repeated to account for all the digits. +If the list is terminated with +.Dv CHAR_MAX , +no more grouping is performed. +.It Fa int_curr_symbol +The standardized international currency symbol. +.It Fa currency_symbol +The local currency symbol. +.It Fa mon_decimal_point +The decimal point character for currency values. +.It Fa mon_thousands_sep +The separator for digit groups in currency values. +.It Fa mon_grouping +Like +.Fa grouping +but for currency values. +.It Fa positive_sign +The character used to denote non-negative currency values, +usually the empty string. +.It Fa negative_sign +The character used to denote negative currency values, +usually a minus sign. +.El +.Pp +It also provides the following fields of type +.Vt char : +.Bl -tag -width mon_decimal_point +.It Fa int_frac_digits +The number of digits after the decimal point +in an international-style currency value. +.It Fa frac_digits +The number of digits after the decimal point +in the local style for currency values. +.It Fa p_cs_precedes +1 if the currency symbol precedes the currency value +for non-negative values, 0 if it follows. +.It Fa p_sep_by_space +1 if a space is inserted between the currency symbol +and the currency value for non-negative values, 0 otherwise. +.It Fa n_cs_precedes +Like +.Fa p_cs_precedes +but for negative values. +.It Fa n_sep_by_space +Like +.Fa p_sep_by_space +but for negative values. +.It Fa p_sign_posn +The location of the +.Fa positive_sign +with respect to a non-negative quantity and the +.Fa currency_symbol , +coded as follows: +.Pp +.Bl -tag -width 3n -compact +.It Li 0 +Parentheses around the entire string. +.It Li 1 +Before the string. +.It Li 2 +After the string. +.It Li 3 +Just before +.Fa currency_symbol . +.It Li 4 +Just after +.Fa currency_symbol . +.El +.It Fa n_sign_posn +Like +.Fa p_sign_posn +but for negative currency values. +.It Fa int_p_cs_precedes +Like +.Fa p_cs_precedes +but for the international symbol. +.It Fa int_n_cs_precedes +Like +.Fa n_cs_precedes +but for the international symbol. +.It Fa int_p_sep_by_space +Like +.Fa p_sep_by_space +but for the international symbol. +.It Fa int_n_sep_by_space +Like +.Fa n_sep_by_space +but for the international symbol. +.It Fa int_p_sign_posn +Like +.Fa p_sign_posn +but for the international symbol. +.It Fa int_n_sign_posn +Like +.Fa n_sign_posn +but for the international symbol. +.El +.Pp +Unless mentioned above, +an empty string as a value for a field +indicates a zero length result or +a value that is not in the current locale. +A +.Dv CHAR_MAX +result similarly denotes an unavailable value. +.Sh STANDARDS +The +.Fn localeconv +function conforms to +.St -ansiC . +.Sh HISTORY +The +.Fn localeconv +function first appeared in +.Bx 4.4 . diff --git a/lib/libc/locale/setlocale.3 b/lib/libc/locale/setlocale.3 index 46d16a6e996..3b292e3b918 100644 --- a/lib/libc/locale/setlocale.3 +++ b/lib/libc/locale/setlocale.3 @@ -1,4 +1,4 @@ -.\" $OpenBSD: setlocale.3,v 1.20 2018/03/22 00:03:24 schwarze Exp $ +.\" $OpenBSD: setlocale.3,v 1.21 2018/04/04 14:53:02 schwarze Exp $ .\" $NetBSD: setlocale.3,v 1.3 1997/07/14 23:19:47 kleink Exp $ .\" .\" Copyright (c) 1993 @@ -33,19 +33,16 @@ .\" .\" @(#)setlocale.3 8.1 (Berkeley) 6/9/93 .\" -.Dd $Mdocdate: March 22 2018 $ +.Dd $Mdocdate: April 4 2018 $ .Dt SETLOCALE 3 .Os .Sh NAME -.Nm setlocale , -.Nm localeconv +.Nm setlocale .Nd select character encoding .Sh SYNOPSIS .In locale.h .Ft char * .Fn setlocale "int category" "const char *locale" -.Ft struct lconv * -.Fn localeconv "void" .Sh DESCRIPTION The .Fn setlocale @@ -129,137 +126,6 @@ locale. The only function in the library that sets the locale is .Fn setlocale ; the locale is never changed as a side effect of some other routine. -.Pp -The -.Fn localeconv -function returns a pointer to a static structure -which provides parameters for formatting numbers. -On -.Ox , -nothing in the returned structure ever changes. -.Pp -It provides the following fields of type -.Vt char * : -.Bl -tag -width mon_decimal_point -.It Fa decimal_point -The decimal point character, except for currency values. -.It Fa thousands_sep -The separator between groups of digits -before the decimal point, except for currency values. -.It Fa grouping -The sizes of the groups of digits, except for currency values. -This is a pointer to a vector of integers, each of size -.Li char , -representing group size from low order digit groups -to high order (right to left). -The list may be terminated with 0 or -.Dv CHAR_MAX . -If the list is terminated with 0, -the last group size before the 0 is repeated to account for all the digits. -If the list is terminated with -.Dv CHAR_MAX , -no more grouping is performed. -.It Fa int_curr_symbol -The standardized international currency symbol. -.It Fa currency_symbol -The local currency symbol. -.It Fa mon_decimal_point -The decimal point character for currency values. -.It Fa mon_thousands_sep -The separator for digit groups in currency values. -.It Fa mon_grouping -Like -.Fa grouping -but for currency values. -.It Fa positive_sign -The character used to denote non-negative currency values, -usually the empty string. -.It Fa negative_sign -The character used to denote negative currency values, -usually a minus sign. -.El -.Pp -It also provides the following fields of type -.Vt char : -.Bl -tag -width mon_decimal_point -.It Fa int_frac_digits -The number of digits after the decimal point -in an international-style currency value. -.It Fa frac_digits -The number of digits after the decimal point -in the local style for currency values. -.It Fa p_cs_precedes -1 if the currency symbol precedes the currency value -for non-negative values, 0 if it follows. -.It Fa p_sep_by_space -1 if a space is inserted between the currency symbol -and the currency value for non-negative values, 0 otherwise. -.It Fa n_cs_precedes -Like -.Fa p_cs_precedes -but for negative values. -.It Fa n_sep_by_space -Like -.Fa p_sep_by_space -but for negative values. -.It Fa p_sign_posn -The location of the -.Fa positive_sign -with respect to a non-negative quantity and the -.Fa currency_symbol , -coded as follows: -.Pp -.Bl -tag -width 3n -compact -.It Li 0 -Parentheses around the entire string. -.It Li 1 -Before the string. -.It Li 2 -After the string. -.It Li 3 -Just before -.Fa currency_symbol . -.It Li 4 -Just after -.Fa currency_symbol . -.El -.It Fa n_sign_posn -Like -.Fa p_sign_posn -but for negative currency values. -.It Fa int_p_cs_precedes -Like -.Fa p_cs_precedes -but for the international symbol. -.It Fa int_n_cs_precedes -Like -.Fa n_cs_precedes -but for the international symbol. -.It Fa int_p_sep_by_space -Like -.Fa p_sep_by_space -but for the international symbol. -.It Fa int_n_sep_by_space -Like -.Fa n_sep_by_space -but for the international symbol. -.It Fa int_p_sign_posn -Like -.Fa p_sign_posn -but for the international symbol. -.It Fa int_n_sign_posn -Like -.Fa n_sign_posn -but for the international symbol. -.El -.Pp -Unless mentioned above, -an empty string as a value for a field -indicates a zero length result or -a value that is not in the current locale. -A -.Dv CHAR_MAX -result similarly denotes an unavailable value. .Sh RETURN VALUES In case of success, .Fn setlocale @@ -327,14 +193,10 @@ right afterwards leaves the locale unchanged and returns .Sh STANDARDS The .Fn setlocale -and -.Fn localeconv -functions conform to +function conforms to .St -ansiC . .Sh HISTORY The .Fn setlocale -and -.Fn localeconv -functions first appeared in +function first appeared in .Bx 4.4 . -- cgit v1.2.3