]> git.saurik.com Git - apple/libc.git/blobdiff - locale/setlocale.3
Libc-583.tar.gz
[apple/libc.git] / locale / setlocale.3
index b0cdfb65b7f6e2de52563444ef8cad03354e664c..dcbd33322f8640ba7dfd4c0a7428df776023ffda 100644 (file)
 .\" SUCH DAMAGE.
 .\"
 .\"    @(#)setlocale.3 8.1 (Berkeley) 6/9/93
-.\" $FreeBSD: src/lib/libc/locale/setlocale.3,v 1.15.2.5 2001/12/14 18:33:55 ru Exp $
+.\" $FreeBSD: src/lib/libc/locale/setlocale.3,v 1.33 2004/10/17 06:51:50 tjr Exp $
 .\"
-.Dd June 9, 1993
+.Dd November 21, 2003
 .Dt SETLOCALE 3
 .Os
 .Sh NAME
-.Nm setlocale ,
-.Nm localeconv
+.Nm setlocale
 .Nd natural language formatting for C
 .Sh LIBRARY
 .Lb libc
 .Sh SYNOPSIS
 .In locale.h
 .Ft char *
-.Fn setlocale "int category" "const char *locale"
-.Ft struct lconv *
-.Fn localeconv "void"
+.Fo setlocale
+.Fa "int category"
+.Fa "const char *locale"
+.Fc
 .Sh DESCRIPTION
 The
 .Fn setlocale
@@ -59,10 +59,6 @@ for particular sets of routines.
 Each such style is called a
 .Sq locale
 and is invoked using an appropriate name passed as a C string.
-The
-.Fn localeconv
-routine returns the current locale's parameters
-for formatting numbers.
 .Pp
 The
 .Fn setlocale
@@ -80,17 +76,13 @@ and
 .Fn strxfrm .
 .It Dv LC_CTYPE
 Set a locale for the
-.Xr ctype 3 ,
-.Xr mbrune 3 ,
-.Xr multibyte 3
+.Xr ctype 3
 and
-.Xr rune 3
+.Xr multibyte 3
 functions.
 This controls recognition of upper and lower case,
 alphabetic or non-alphabetic characters,
-and so on.  The real work is done by the
-.Fn setrunelocale
-function.
+and so on.
 .It Dv LC_MESSAGES
 Set a locale for message catalogs, see
 .Xr catopen 3
@@ -116,14 +108,14 @@ Set a locale for formatting dates and times using the
 function.
 .El
 .Pp
-Only three locales are defined by default,
+Only three locales are defined by default:
 the empty string
 .Li "\&""\|""
-which denotes the native environment, and the
+(which denotes the native environment) and the
 .Li "\&""C""
 and
 .Li "\&""POSIX""
-locales, which denote the C language environment.
+locales (which denote the C-language environment).
 A
 .Fa locale
 argument of
@@ -137,128 +129,13 @@ 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 structure
-which provides parameters for formatting numbers,
-especially currency values:
-.Bd -literal -offset indent
-struct lconv {
-       char    *decimal_point;
-       char    *thousands_sep;
-       char    *grouping;
-       char    *int_curr_symbol;
-       char    *currency_symbol;
-       char    *mon_decimal_point;
-       char    *mon_thousands_sep;
-       char    *mon_grouping;
-       char    *positive_sign;
-       char    *negative_sign;
-       char    int_frac_digits;
-       char    frac_digits;
-       char    p_cs_precedes;
-       char    p_sep_by_space;
-       char    n_cs_precedes;
-       char    n_sep_by_space;
-       char    p_sign_posn;
-       char    n_sign_posn;
-};
-.Ed
-.Pp
-The individual fields have the following meanings:
-.Pp
-.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
-.Va 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 nonnegative currency values,
-usually the empty string.
-.It Fa negative_sign
-The character used to denote negative currency values,
-usually a minus sign.
-.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 nonnegative 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 nonnegative 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 nonnegative quantity and the
-.Fa currency_symbol ,
-coded as follows:
-.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.
-.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
+Upon successful completion,
+.Fn setlocale
+returns the string associated with the specified
+.Fa category
+for the requested
+.Fa locale .
 The
 .Fn setlocale
 function returns
@@ -269,13 +146,8 @@ if the given combination of
 and
 .Fa locale
 makes no sense.
-The
-.Fn localeconv
-function returns a pointer to a static object
-which may be altered by later calls to
-.Fn setlocale
-or
-.Fn localeconv .
+.Sh ERRORS
+No errors are defined.
 .Sh FILES
 .Bl -tag -width /usr/share/locale/locale/category -compact
 .It Pa $PATH_LOCALE/ Ns Em locale/category
@@ -290,49 +162,20 @@ and the category
 .Xr mklocale 1 ,
 .Xr catopen 3 ,
 .Xr ctype 3 ,
-.Xr mbrune 3 ,
+.Xr localeconv 3 ,
 .Xr multibyte 3 ,
-.Xr rune 3 ,
 .Xr strcoll 3 ,
 .Xr strxfrm 3 ,
-.Xr euc 4 ,
-.Xr utf2 4
+.Xr euc 5 ,
+.Xr utf8 5 ,
+.Xr environ 7
 .Sh STANDARDS
 The
 .Fn setlocale
-and
-.Fn localeconv
-functions conform to
-.St -isoC .
+function conforms to
+.St -isoC-99 .
 .Sh HISTORY
 The
 .Fn setlocale
-and
-.Fn localeconv
-functions first appeared in
+function first appeared in
 .Bx 4.4 .
-.Sh BUGS
-The current implementation supports only the
-.Li "\&""C""
-and
-.Li "\&""POSIX""
-locales for all but the 
-.Dv LC_COLLATE ,
-.Dv LC_CTYPE ,
-and
-.Dv LC_TIME
-categories.
-.Pp
-In spite of the gnarly currency support in
-.Fn localeconv ,
-the standards don't include any functions
-for generalized currency formatting.
-.Pp
-Use of
-.Dv LC_MONETARY
-could lead to misleading results until we have a real time currency
-conversion function.
-.Dv LC_NUMERIC
-and
-.Dv LC_TIME
-are personal choices and should not be wrapped up with the other categories.