This is the mail archive of the newlib@sourceware.org mailing list for the newlib project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
On 18 November 2010 11:03, Corinna Vinschen wrote: > On Nov 17 21:34, Andy Koppe wrote: >> On 16 November 2010 17:58, Corinna Vinschen wrote: >> > On Nov Â9 22:06, Andy Koppe wrote: >> >> The attached small patch affects character widths as reported by >> >> wcwidth(). It addresses an obscure issue. >> >>[...] >> >> Â Â Â * libc/locale/locale.c: Fix ambigous width to one for singlebyte >> >> Â Â Â charsets and two for non-Unicode multibyte charsets. >> > >> > This appears to make a lot of sense. ÂWould you mind to enhance your >> > patch slightly to fix also the description in the locale.c >> > documentation? ÂThere's a related paragraph starting with "This >> > implementation also supports a single modifier, <<"cjknarrow">>..." >> >> Sorry, I hadn't seen that. Amended patch attached. >> >> Â Â Â * libc/locale/locale.c (loadlocale): Fix width of CJK ambigous >> Â Â Â characters to 1 for singlebyte charsets and 2 for non-Unicode >> Â Â Â multibyte charsets. Change documentation accordingly. > > Thank you. ÂApplied with a minor change. Â@ is a special character > in the docs and has to be doubled ("@@") to be treated literally. > I just removed it entirely since the @ is not part of the modifier > itself. Thanks. In further testing I realised that the cjknarrow modifier wasn't implemented for "C.<charset>" locales (since previously there was no point in that). Patch attached to make it work. * libc/locale/locale.c (loadlocale): Recognise the "cjknarrow" modifier on "C.<charset>" locales too. Here's a small test for this: $ cat width.c #include <wchar.h> #include <locale.h> #include <stdio.h> int main(void) { setlocale(LC_CTYPE, ""); puts(setlocale(LC_CTYPE, 0)); puts(wcwidth(0xA1) == 1 ? "narrow" : "wide"); } $ cc width.c $ ./a C.UTF-8 narrow $ LANG=C.GBK ./a C.GBK wide $ LANG=C.GBK@cjknarrow ./a C.GBK@cjknarrow narrow $ LANG=ja_JP.UTF-8 ./a ja_JP.UTF-8 wide $ LANG=ja_JP.UTF-8@cjknarrow ./a ja_JP.UTF-8@cjknarrow narrow $ LANG=de_DE.UTF-8 ./a de_DE.UTF-8 narrow Andy
Attachment:
ambiwidth3.patch
Description: Binary data
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |