This is the mail archive of the glibc-bugs@sourceware.org mailing list for the glibc 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]

[Bug libc/4335] EastAsianAmbiguous character width is always 1 in UTF-8 locale


------- Additional Comments From d+bugzilla at vdr dot jp  2007-11-27 16:04 -------
Any progress?
It is still present in glibc 2.7 (Debian).

% /lib/libc.so.6
GNU C Library stable release version 2.7, by Roland McGrath et al.
Copyright (C) 2007 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
Compiled by GNU CC version 4.2.3 20071123 (prerelease) (Debian 4.2.2-4).
Compiled on a Linux >>2.6.22.12<< system on 2007-11-26.
Available extensions:
	crypt add-on version 2.1 by Michael Glad and others
	GNU Libidn by Simon Josefsson
	Native POSIX Threads Library by Ulrich Drepper et al
	BIND-8.2.3-T5B
For bug reporting instructions, please see:
<http://www.gnu.org/software/libc/bugs.html>.

% cat test.c
#include <stdio.h>
#include <locale.h>
#define __USE_XOPEN
#include <wchar.h>

int main( void ) {
  wchar_t i;
  wchar_t euc, utf8;

  for( i = 0x00; i < 0x100; i++ ) {
    setlocale( LC_CTYPE, "ja_JP.eucJP" );
    euc = wcwidth( i );
    setlocale( LC_CTYPE, "ja_JP.UTF-8" );
    utf8 = wcwidth( i );

    if( euc > 0 && euc != utf8 ) {
      fprintf( stdout, "%02x : %d : %d : [%c]\n", i, euc, utf8, i );
    }
  }

  return 0;
}

Using default UTF-8 locale:

% ./a.out
a1 : 2 : 1 : [?¢Â]
a2 : 2 : 1 : [¡ñ]
a3 : 2 : 1 : [¡ò]
a4 : 2 : 1 : [?¢ð]
a6 : 2 : 1 : [üü]
a7 : 2 : 1 : [¡ø]
a8 : 2 : 1 : [¡¯]
a9 : 2 : 1 : [?¢í]
aa : 2 : 1 : [?¢ì]
ac : 2 : 1 : [¢Ì]
ae : 2 : 1 : [?¢î]
af : 2 : 1 : [?¢´]
b0 : 2 : 1 : [¡ë]
b1 : 2 : 1 : [¡Þ]
b4 : 2 : 1 : [¡­]
b6 : 2 : 1 : [¢ù]
b8 : 2 : 1 : [?¢±]
ba : 2 : 1 : [?¢ë]
bf : 2 : 1 : [?¢Ä]
c0 : 2 : 1 : [?ª¢]
c1 : 2 : 1 : [?ª¡]
c2 : 2 : 1 : [?ª¤]
c3 : 2 : 1 : [?ªª]
c4 : 2 : 1 : [?ª£]
c5 : 2 : 1 : [?ª©]
c6 : 2 : 1 : [?©¡]
c7 : 2 : 1 : [?ª®]
c8 : 2 : 1 : [?ª²]
c9 : 2 : 1 : [?ª±]
ca : 2 : 1 : [?ª´]
cb : 2 : 1 : [?ª³]
cc : 2 : 1 : [?ªÀ]
cd : 2 : 1 : [?ª¿]
ce : 2 : 1 : [?ªÂ]
cf : 2 : 1 : [?ªÁ]
d1 : 2 : 1 : [?ªÐ]
d2 : 2 : 1 : [?ªÒ]
d3 : 2 : 1 : [?ªÑ]
d4 : 2 : 1 : [?ªÔ]
d5 : 2 : 1 : [?ªØ]
d6 : 2 : 1 : [?ªÓ]
d7 : 2 : 1 : [¡ß]
d8 : 2 : 1 : [?©¬]
d9 : 2 : 1 : [?ªã]
da : 2 : 1 : [?ªâ]
db : 2 : 1 : [?ªå]
dc : 2 : 1 : [?ªä]
dd : 2 : 1 : [?ªò]
de : 2 : 1 : [?©°]
df : 2 : 1 : [?©Î]
e0 : 2 : 1 : [?«¢]
e1 : 2 : 1 : [?«¡]
e2 : 2 : 1 : [?«¤]
e3 : 2 : 1 : [?ǻ]
e4 : 2 : 1 : [?«£]
e5 : 2 : 1 : [?«©]
e6 : 2 : 1 : [?©Á]
e7 : 2 : 1 : [?«®]
e8 : 2 : 1 : [?«²]
e9 : 2 : 1 : [?«±]
ea : 2 : 1 : [?«´]
eb : 2 : 1 : [?«³]
ec : 2 : 1 : [?«À]
ed : 2 : 1 : [?«¿]
ee : 2 : 1 : [?«Â]
ef : 2 : 1 : [?«Á]
f0 : 2 : 1 : [?©Ã]
f1 : 2 : 1 : [?«Ð]
f2 : 2 : 1 : [?«Ò]
f3 : 2 : 1 : [?«Ñ]
f4 : 2 : 1 : [?«Ô]
f5 : 2 : 1 : [?«Ø]
f6 : 2 : 1 : [?«Ó]
f7 : 2 : 1 : [¡à]
f8 : 2 : 1 : [?©Ì]
f9 : 2 : 1 : [?«ã]
fa : 2 : 1 : [?«â]
fb : 2 : 1 : [?«å]
fc : 2 : 1 : [?«ä]
fd : 2 : 1 : [?«ò]
fe : 2 : 1 : [?©Ð]
ff : 2 : 1 : [?«ó]

Using modified (EastAsianAmbiguous character width == 2,
according to EastAsianWidth-5.0.0.txt) UTF-8 locale:

% ./a.out
a2 : 2 : 1 : [¡ñ]
a3 : 2 : 1 : [¡ò]
a6 : 2 : 1 : [üü]
a9 : 2 : 1 : [?¢í]
ac : 2 : 1 : [¢Ì]
af : 2 : 1 : [?¢´]
c0 : 2 : 1 : [?ª¢]
c1 : 2 : 1 : [?ª¡]
c2 : 2 : 1 : [?ª¤]
c3 : 2 : 1 : [?ªª]
c4 : 2 : 1 : [?ª£]
c5 : 2 : 1 : [?ª©]
c7 : 2 : 1 : [?ª®]
c8 : 2 : 1 : [?ª²]
c9 : 2 : 1 : [?ª±]
ca : 2 : 1 : [?ª´]
cb : 2 : 1 : [?ª³]
cc : 2 : 1 : [?ªÀ]
cd : 2 : 1 : [?ª¿]
ce : 2 : 1 : [?ªÂ]
cf : 2 : 1 : [?ªÁ]
d1 : 2 : 1 : [?ªÐ]
d2 : 2 : 1 : [?ªÒ]
d3 : 2 : 1 : [?ªÑ]
d4 : 2 : 1 : [?ªÔ]
d5 : 2 : 1 : [?ªØ]
d6 : 2 : 1 : [?ªÓ]
d9 : 2 : 1 : [?ªã]
da : 2 : 1 : [?ªâ]
db : 2 : 1 : [?ªå]
dc : 2 : 1 : [?ªä]
dd : 2 : 1 : [?ªò]
e2 : 2 : 1 : [?«¤]
e3 : 2 : 1 : [?ǻ]
e4 : 2 : 1 : [?«£]
e5 : 2 : 1 : [?«©]
e7 : 2 : 1 : [?«®]
eb : 2 : 1 : [?«³]
ee : 2 : 1 : [?«Â]
ef : 2 : 1 : [?«Á]
f1 : 2 : 1 : [?«Ð]
f4 : 2 : 1 : [?«Ô]
f5 : 2 : 1 : [?«Ø]
f6 : 2 : 1 : [?«Ó]
fb : 2 : 1 : [?«å]
fd : 2 : 1 : [?«ò]
ff : 2 : 1 : [?«ó]

% diff -u utf8-cjk-default utf8-cjk-modified
--- utf8-cjk-default	2007-11-28 01:03:07.000000000 +0900
+++ utf8-cjk-modified	2007-11-28 01:02:55.000000000 +0900
@@ -1,29 +1,15 @@
-a1 : 2 : 1 : [?¢Â]
 a2 : 2 : 1 : [¡ñ]
 a3 : 2 : 1 : [¡ò]
-a4 : 2 : 1 : [?¢ð]
 a6 : 2 : 1 : [üü]
-a7 : 2 : 1 : [¡ø]
-a8 : 2 : 1 : [¡¯]
 a9 : 2 : 1 : [?¢í]
-aa : 2 : 1 : [?¢ì]
 ac : 2 : 1 : [¢Ì]
-ae : 2 : 1 : [?¢î]
 af : 2 : 1 : [?¢´]
-b0 : 2 : 1 : [¡ë]
-b1 : 2 : 1 : [¡Þ]
-b4 : 2 : 1 : [¡­]
-b6 : 2 : 1 : [¢ù]
-b8 : 2 : 1 : [?¢±]
-ba : 2 : 1 : [?¢ë]
-bf : 2 : 1 : [?¢Ä]
 c0 : 2 : 1 : [?ª¢]
 c1 : 2 : 1 : [?ª¡]
 c2 : 2 : 1 : [?ª¤]
 c3 : 2 : 1 : [?ªª]
 c4 : 2 : 1 : [?ª£]
 c5 : 2 : 1 : [?ª©]
-c6 : 2 : 1 : [?©¡]
 c7 : 2 : 1 : [?ª®]
 c8 : 2 : 1 : [?ª²]
 c9 : 2 : 1 : [?ª±]
@@ -39,44 +25,23 @@
 d4 : 2 : 1 : [?ªÔ]
 d5 : 2 : 1 : [?ªØ]
 d6 : 2 : 1 : [?ªÓ]
-d7 : 2 : 1 : [¡ß]
-d8 : 2 : 1 : [?©¬]
 d9 : 2 : 1 : [?ªã]
 da : 2 : 1 : [?ªâ]
 db : 2 : 1 : [?ªå]
 dc : 2 : 1 : [?ªä]
 dd : 2 : 1 : [?ªò]
-de : 2 : 1 : [?©°]
-df : 2 : 1 : [?©Î]
-e0 : 2 : 1 : [?«¢]
-e1 : 2 : 1 : [?«¡]
 e2 : 2 : 1 : [?«¤]
 e3 : 2 : 1 : [?ǻ]
 e4 : 2 : 1 : [?«£]
 e5 : 2 : 1 : [?«©]
-e6 : 2 : 1 : [?©Á]
 e7 : 2 : 1 : [?«®]
-e8 : 2 : 1 : [?«²]
-e9 : 2 : 1 : [?«±]
-ea : 2 : 1 : [?«´]
 eb : 2 : 1 : [?«³]
-ec : 2 : 1 : [?«À]
-ed : 2 : 1 : [?«¿]
 ee : 2 : 1 : [?«Â]
 ef : 2 : 1 : [?«Á]
-f0 : 2 : 1 : [?©Ã]
 f1 : 2 : 1 : [?«Ð]
-f2 : 2 : 1 : [?«Ò]
-f3 : 2 : 1 : [?«Ñ]
 f4 : 2 : 1 : [?«Ô]
 f5 : 2 : 1 : [?«Ø]
 f6 : 2 : 1 : [?«Ó]
-f7 : 2 : 1 : [¡à]
-f8 : 2 : 1 : [?©Ì]
-f9 : 2 : 1 : [?«ã]
-fa : 2 : 1 : [?«â]
 fb : 2 : 1 : [?«å]
-fc : 2 : 1 : [?«ä]
 fd : 2 : 1 : [?«ò]
-fe : 2 : 1 : [?©Ð]
 ff : 2 : 1 : [?«ó]

-- 


http://sourceware.org/bugzilla/show_bug.cgi?id=4335

------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]