Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 4 Sep 2000 13:49:59 +0300
From:      Alexey Zelkin <phantom@FreeBSD.ORG>
To:        NUMATA Toshinori <numa@rp.open.cs.fujitsu.co.jp>
Cc:        "Andrey A. Chernov" <ache@nagual.pp.ru>, Alexander Voropay <a.voropay@globalone.ru>, i18n@FreeBSD.ORG
Subject:   Re: Request for review: locale aliases support for libc
Message-ID:  <20000904134959.C7702@ark.cris.net>
In-Reply-To: <200009040341.MAA15473@margaux.rp.open.cs.fujitsu.co.jp>; from numa@rp.open.cs.fujitsu.co.jp on Mon, Sep 04, 2000 at 12:41:42PM %2B0900
References:  <34d701c01424$4a2e4b60$cd0d11ac@host205.spb.in.rosprin.ru> <20000901192017.B29804@nagual.pp.ru> <200009040341.MAA15473@margaux.rp.open.cs.fujitsu.co.jp>

next in thread | previous in thread | raw e-mail | index | archive | help
hi,

Thanks for explanation NUMATA-san!

Same is described in Single User Specification. I think we have no
problems with locale name expansion returned as result of setlocale().
Andrey ? Alexander ?

On Mon, Sep 04, 2000 at 12:41:42PM +0900, NUMATA Toshinori wrote:
> "Andrey A. Chernov" <ache@nagual.pp.ru> wrote:
> > On Fri, Sep 01, 2000 at 06:52:03PM +0400, Alexander Voropay wrote:
> >>  AFAIK, the presense of any forms of locale "aliasing" does not
> >> comply current POSIX specifications :
> >>   string=setlocale(LC_xxx, "language_TERRITORY.Codeset");
> >> should returns _THE_SAME_ locale name _as requested_.
> > 
> > 
> > No, it means that returned string should be not expanded to its full form.
> > 
> > I.e. setlocale(LC_ALL, "ru") should return "ru" and not "ru_RU.KOI8-R"
> > and do all expansions internally and invisible to caller.
> 
> In my copy of POSIX.1 standard (ISO/IEC 9945-1:1990) says:
> 
>     8.1.2 Extensions to setlocale() Function
>     ...
>     8.1.2.3 Returns
> 
>     A successful call to setlocale() returns a string that corresponds
>     to the locale set.  The string returned is such that "a subsequent
>     call with that string and its associated category will restore
>     that part of the process's locale" (C Standard {2}).  The string
>     returned shall not be modified by the process, but may be
>     overwritten by a subsequent call to the setlocale() function.
>     This string is not required to be the value of the environment
>     variable used, if one was used.
> 
> It does not say that the returned value must be the same as the string
> passed to the setlocale() call, or anything about string expansions.
> (POSIX does ont specify the format of locale names, so no definition
> of "locale name expantion" at all.)
> 
> The only thing the standard specify is that the call:
> 
>     char *locale_string = setlocale(LC_CTYPE, "ru");
> 
> must return *some* string that indicates the locale set (if the call was
> successful) and the subsequent call:
> 
>     setlocale(LC_CTYPE, locale_string);
> 
> must produce the same result as the call of setlocale(LC_CTYPE, "ru");.
> (Well, the content of locale_string may be changed by the subsequent
> calls of setlocale() so the string must be saved to some other buffer.)
> 
> The string returned may be the same as the string passed (for example,
> "ru"), may be "expanded" form (for example, "ru_RU.KOI-8R"), or may be
> some other implementation-specific form.  The only requirement is that
> "a subsequent call with that string and its associated category will
> restore that part of the process's locale".
> 
> -- 
> NUMATA Toshinori
> Planning Dept., Strategic Planning Div., Software Group, FUJITSU LIMITED
> Phone: +81-45-476-4586 (x4224)	Fax: +81-45-476-4749

-- 
/* Alexey Zelkin               && phantom@cris.net       */
/* Tavric National University  && phantom@FreeBSD.org    */
/* Sysadmin/Developer          && phantom@sms.umc.com.ua */


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-i18n" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20000904134959.C7702>