Hi!
I have just committed the following fix to the setlocale(3)
that changes the meaning of the LC_ALL environment variable
so that it conforms to ISO and POSIX standards.
On Fri, Mar 02, 2001 at 04:45:53AM -0800, Ruslan Ermilov wrote:
> ru 2001/03/02 04:45:53 PST
>
> Modified files:
> lib/libc/locale setlocale.c
> Log:
> Fix setlocale() to conform to the ISO C and POSIX standards.
> The below text is quoted from the latest POSIX draft:
>
> : The values of locale categories shall be determined by a precedence
> : order; the first condition met below determines the value:
> :
> : 1. If the LC_ALL environment variable is defined and is not null,
> : the value of LC_ALL shall be used.
> : 2. If the LC_* environment variable (LC_COLLATE, LC_CTYPE, LC_MESSAGES,
> : LC_MONETARY, LC_NUMERIC, LC_TIME) is defined and is not null, the
> : value of the environment variable shall be used to initialize the
> : category that corresponds to the environment variable.
> : 3. If the LANG environment variable is defined and is not null, the
> : value of the LANG environment variable shall be used.
> : 4. If the LANG environment variable is not set or is set to the empty
> : string, the implementation-defined default locale shall be used.
>
> The conditions 1 and 2 were interchanged, i.e., LC_* were looked first,
> then LC_ALL, then LANG (note that LC_ALL and LANG were essentially the
> same, providing the default, with LC_ALL taking precedence over LANG).
> Now, LC_ALL and LANG serve the different purposes. LC_ALL overrides
> any LC_*, and LANG provides the default fallback.
>
> Testcase:
>
> /usr/bin/env LC_ALL=C LC_TIME=de_DE.ISO_8859-1 /bin/date
>
> Should return date in the "C" locale format.
>
> Inspired by: date(1) reference page in the Draft
>
> Revision Changes Path
> 1.30 +4 -4 src/lib/libc/locale/setlocale.c
--
Ruslan Ermilov Oracle Developer/DBA,
[EMAIL PROTECTED] Sunbay Software AG,
[EMAIL PROTECTED] FreeBSD committer,
+380.652.512.251 Simferopol, Ukraine
http://www.FreeBSD.org The Power To Serve
http://www.oracle.com Enabling The Information Age
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message