This is the mail archive of the
libc-alpha@sources.redhat.com
mailing list for the glibc project.
Re: [PATCH] Remove 0x005C conversion from __jisx0208_from_ucs4_lat1 for ISO-2022-JP
- From: GOTO Masanori <gotom at debian dot or dot jp>
- To: libc-alpha at sources dot redhat dot com
- Cc: gotom at debian dot or dot jp, ukai at debian dot or dot jp
- Date: Fri, 10 Sep 2004 01:14:05 +0900
- Subject: Re: [PATCH] Remove 0x005C conversion from __jisx0208_from_ucs4_lat1 for ISO-2022-JP
- References: <811xib64v6.wl@omega.webmasters.gr.jp>
Could someone take and look at this patch? I heard and reported from
various Japanese users about this problem for a long time.
Regards,
-- gotom
At Fri, 13 Aug 2004 13:26:05 +0900,
GOTO Masanori wrote:
> This patch removes 0x005C from __jisx0208_from_ucs4_lat1 table at
> iconvdata/jis0208.c. Without this patch, ISO-646 0x5c (reverse
> solidus, backslash: (\)) in ISO-2022-JP is converted to 0x2140
> (fullwidth reverse solidus: EUC-JP:0xa1c0, U+ff3c) when we convert it
> into ISO-2022-JP(-1..-3) and 0x5c is appeared after JISX0208
> character. __jisx0208_from_ucs4_lat1 table is used by EUC-JP,
> ISO-2022-JP, and ISO-2022-JP-3, but EUC-JP does not use this table
> when the character is 0x5c, so it's ISO-2022-JP, -2 and ISO-2022-JP-3
> specific issue.
>
> To show the problem, try the following example. It unexpectedly
> converts 2nd '\' to FULLWIDTH REVERSE SOLIDUS.
>
> printf '\033$B\x24\x22\033(B\\a\\\n' | \
> iconv -f ISO-2022-JP -t ISO-2022-JP
>
> Regards,
> -- gotom
>
>
> 2004-08-13 GOTO Masanori <gotom@debian.or.jp>
>
> * iconvdata/jis0208.c: Remove 0x005C mapping from
> __jisx0208_from_ucs4_lat1.
> Reported by Fumitoshi UKAI <ukai@debian.or.jp>
>
>
> Index: iconvdata/jis0208.c
> ===================================================================
> RCS file: /cvs/glibc/libc/iconvdata/jis0208.c,v
> retrieving revision 1.7
> diff -u -r1.7 jis0208.c
> --- iconvdata/jis0208.c 17 Dec 2002 01:29:56 -0000 1.7
> +++ iconvdata/jis0208.c 12 Aug 2004 16:44:14 -0000
> @@ -1,5 +1,5 @@
> /* Mapping tables for JIS0208 handling.
> - Copyright (C) 1997, 1998, 2002 Free Software Foundation, Inc.
> + Copyright (C) 1997, 1998, 2002, 2004 Free Software Foundation, Inc.
> This file is part of the GNU C Library.
> Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
>
> @@ -1785,10 +1785,10 @@
>
> const char __jisx0208_from_ucs4_lat1[256][2] =
> {
> - [0x005C] = "\x21\x40", [0x00A2] = "\x21\x71", [0x00A3] = "\x21\x72",
> - [0x00A7] = "\x21\x78", [0x00A8] = "\x21\x2f", [0x00AC] = "\x22\x4c",
> - [0x00B0] = "\x21\x6B", [0x00B1] = "\x21\x5e", [0x00B4] = "\x21\x2d",
> - [0x00B6] = "\x22\x79", [0x00D7] = "\x21\x5f", [0x00F7] = "\x21\x60"
> + [0x00A2] = "\x21\x71", [0x00A3] = "\x21\x72", [0x00A7] = "\x21\x78",
> + [0x00A8] = "\x21\x2f", [0x00AC] = "\x22\x4c", [0x00B0] = "\x21\x6B",
> + [0x00B1] = "\x21\x5e", [0x00B4] = "\x21\x2d", [0x00B6] = "\x22\x79",
> + [0x00D7] = "\x21\x5f", [0x00F7] = "\x21\x60"
> };
>
>
>