|
View:
New views
5 Messages
—
Rating Filter:
Alert me
|
|
|
[PATCH] libc/locale/locale.c: Allow "C." additionally to "C-" prefixHi,
The C- prefix as used by newlib for a long time allows to specify a charset alone, while sticking to the "C" locale, thus staying language neutral. The Debian project is going along with the idea to allow to use the UTF-8 charset while keeping all other settings language neutral. The syntax for this locale is "C.UTF-8". For a discussion of this change, see http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=522776 The below patch allows to specify the "C." prefix alongside of ther "C-" prefix. That allows to stick to a language neutral setting in all other respects, while switching to a charset of choice. Patch below, tested on Cygwin. Ok to apply? Thanks, Corinna * libc/locale/locale.c (loadlocale): Allow "C." same as "C-" as locale prefix. Add some words to documentation. Index: libc/locale/locale.c =================================================================== RCS file: /cvs/src/src/newlib/libc/locale/locale.c,v retrieving revision 1.25 diff -u -p -r1.25 locale.c --- libc/locale/locale.c 25 Aug 2009 18:47:24 -0000 1.25 +++ libc/locale/locale.c 23 Sep 2009 09:38:12 -0000 @@ -61,6 +61,11 @@ backward compatibility with older implem xxx in [437, 720, 737, 775, 850, 852, 855, 857, 858, 862, 866, 874, 1125, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258]. +Instead of <<"C-">>, you can specify also <<"C.">>. Both variations allow +to specify language neutral locales while using other charsets than ASCII, +for instance <<"C.UTF-8">>, which keeps all settings as in the C locale, +but uses the UTF-8 charset. + Even when using POSIX locale strings, the only charsets allowed are <<"UTF-8">>, <<"JIS">>, <<"EUCJP">>, <<"SJIS">>, <<KOI8-R>>, <<KOI8-U>>, <<"ISO-8859-x">> with 1 <= x <= 15, or <<"CPxxx">> with xxx in @@ -432,8 +437,14 @@ loadlocale(struct _reent *p, int categor strcpy (locale, "C"); if (!strcmp (locale, "C")) /* Default "C" locale */ strcpy (charset, "ASCII"); - else if (locale[0] == 'C' && locale[1] == '-') /* Old newlib style */ - strcpy (charset, locale + 2); + else if (locale[0] == 'C' + && (locale[1] == '-' /* Old newlib style */ + || locale[1] == '.')) /* Extension for the C locale to allow + specifying different charsets while + sticking to the C locale in terms + of sort order, etc. Proposed in + the Debian project. */ + strcpy (charset, locale + 2); else /* POSIX style */ { char *c = locale; -- Corinna Vinschen Cygwin Project Co-Leader Red Hat |
|
|
Re: [PATCH] libc/locale/locale.c: Allow "C." additionally to "C-" prefixPing?
Corinna On Sep 23 11:38, Corinna Vinschen wrote: > Hi, > > The C- prefix as used by newlib for a long time allows to specify > a charset alone, while sticking to the "C" locale, thus staying > language neutral. > > The Debian project is going along with the idea to allow to use the > UTF-8 charset while keeping all other settings language neutral. > The syntax for this locale is "C.UTF-8". For a discussion of this > change, see http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=522776 > > The below patch allows to specify the "C." prefix alongside of ther "C-" > prefix. That allows to stick to a language neutral setting in all > other respects, while switching to a charset of choice. > > Patch below, tested on Cygwin. > > Ok to apply? > > > Thanks, > Corinna > > > * libc/locale/locale.c (loadlocale): Allow "C." same as "C-" > as locale prefix. Add some words to documentation. > > > Index: libc/locale/locale.c > =================================================================== > RCS file: /cvs/src/src/newlib/libc/locale/locale.c,v > retrieving revision 1.25 > diff -u -p -r1.25 locale.c > --- libc/locale/locale.c 25 Aug 2009 18:47:24 -0000 1.25 > +++ libc/locale/locale.c 23 Sep 2009 09:38:12 -0000 > @@ -61,6 +61,11 @@ backward compatibility with older implem > xxx in [437, 720, 737, 775, 850, 852, 855, 857, 858, 862, 866, 874, 1125, > 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258]. > > +Instead of <<"C-">>, you can specify also <<"C.">>. Both variations allow > +to specify language neutral locales while using other charsets than ASCII, > +for instance <<"C.UTF-8">>, which keeps all settings as in the C locale, > +but uses the UTF-8 charset. > + > Even when using POSIX locale strings, the only charsets allowed are > <<"UTF-8">>, <<"JIS">>, <<"EUCJP">>, <<"SJIS">>, <<KOI8-R>>, <<KOI8-U>>, > <<"ISO-8859-x">> with 1 <= x <= 15, or <<"CPxxx">> with xxx in > @@ -432,8 +437,14 @@ loadlocale(struct _reent *p, int categor > strcpy (locale, "C"); > if (!strcmp (locale, "C")) /* Default "C" locale */ > strcpy (charset, "ASCII"); > - else if (locale[0] == 'C' && locale[1] == '-') /* Old newlib style */ > - strcpy (charset, locale + 2); > + else if (locale[0] == 'C' > + && (locale[1] == '-' /* Old newlib style */ > + || locale[1] == '.')) /* Extension for the C locale to allow > + specifying different charsets while > + sticking to the C locale in terms > + of sort order, etc. Proposed in > + the Debian project. */ > + strcpy (charset, locale + 2); > else /* POSIX style */ > { > char *c = locale; > > -- > Corinna Vinschen > Cygwin Project Co-Leader > Red Hat -- Corinna Vinschen Cygwin Project Co-Leader Red Hat |
|
|
Re: [PATCH] libc/locale/locale.c: Allow "C." additionally to "C-" prefix2009/9/23 Corinna Vinschen <vinschen@...>:
> Ok to apply? I think there is no problem. -- IWAMURO Motnori <http://vmi.jp/> |
|
|
Re: [PATCH] libc/locale/locale.c: Allow "C." additionally to "C-" prefixOn 29/09/09 12:39 PM, Corinna Vinschen wrote:
> Ping? > > > Corinna > > > On Sep 23 11:38, Corinna Vinschen wrote: >> Hi, >> >> The C- prefix as used by newlib for a long time allows to specify >> a charset alone, while sticking to the "C" locale, thus staying >> language neutral. >> >> The Debian project is going along with the idea to allow to use the >> UTF-8 charset while keeping all other settings language neutral. >> The syntax for this locale is "C.UTF-8". For a discussion of this >> change, see http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=522776 >> >> The below patch allows to specify the "C." prefix alongside of ther "C-" >> prefix. That allows to stick to a language neutral setting in all >> other respects, while switching to a charset of choice. >> >> Patch below, tested on Cygwin. >> >> Ok to apply? >> >> >> Thanks, >> Corinna >> >> >> * libc/locale/locale.c (loadlocale): Allow "C." same as "C-" >> as locale prefix. Add some words to documentation. >> >> >> Index: libc/locale/locale.c >> =================================================================== >> RCS file: /cvs/src/src/newlib/libc/locale/locale.c,v >> retrieving revision 1.25 >> diff -u -p -r1.25 locale.c >> --- libc/locale/locale.c 25 Aug 2009 18:47:24 -0000 1.25 >> +++ libc/locale/locale.c 23 Sep 2009 09:38:12 -0000 >> @@ -61,6 +61,11 @@ backward compatibility with older implem >> xxx in [437, 720, 737, 775, 850, 852, 855, 857, 858, 862, 866, 874, 1125, >> 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258]. >> >> +Instead of<<"C-">>, you can specify also<<"C.">>. Both variations allow >> +to specify language neutral locales while using other charsets than ASCII, >> +for instance<<"C.UTF-8">>, which keeps all settings as in the C locale, >> +but uses the UTF-8 charset. >> + >> Even when using POSIX locale strings, the only charsets allowed are >> <<"UTF-8">>,<<"JIS">>,<<"EUCJP">>,<<"SJIS">>,<<KOI8-R>>,<<KOI8-U>>, >> <<"ISO-8859-x">> with 1<= x<= 15, or<<"CPxxx">> with xxx in >> @@ -432,8 +437,14 @@ loadlocale(struct _reent *p, int categor >> strcpy (locale, "C"); >> if (!strcmp (locale, "C")) /* Default "C" locale */ >> strcpy (charset, "ASCII"); >> - else if (locale[0] == 'C'&& locale[1] == '-') /* Old newlib style */ >> - strcpy (charset, locale + 2); >> + else if (locale[0] == 'C' >> + && (locale[1] == '-' /* Old newlib style */ >> + || locale[1] == '.')) /* Extension for the C locale to allow >> + specifying different charsets while >> + sticking to the C locale in terms >> + of sort order, etc. Proposed in >> + the Debian project. */ >> + strcpy (charset, locale + 2); >> else /* POSIX style */ >> { >> char *c = locale; >> >> -- >> Corinna Vinschen >> Cygwin Project Co-Leader >> Red Hat > Ok. -- Jeff J. |
|
|
Re: [PATCH] libc/locale/locale.c: Allow "C." additionally to "C-" prefixOn Sep 29 13:49, Jeff Johnston wrote:
> On 29/09/09 12:39 PM, Corinna Vinschen wrote: >>> * libc/locale/locale.c (loadlocale): Allow "C." same as "C-" >>> as locale prefix. Add some words to documentation. >>[...] > > Ok. > > -- Jeff J. Thanks, applied. Do you have any chance to look into http://sourceware.org/ml/newlib/2009/msg00938.html ? If this patch is acceptable, I can create a new Cygwin 1.7 test release. Thanks, Corinna -- Corinna Vinschen Cygwin Project Co-Leader Red Hat |
| Free embeddable forum powered by Nabble | Forum Help |