[PATCH] fs: make nls_cp936.c handle some U00XY characters and U20AC correctly
authorJun Chen <jimcgnu@yahoo.com>
Thu, 7 Dec 2006 04:40:37 +0000 (20:40 -0800)
committerLinus Torvalds <torvalds@woody.osdl.org>
Thu, 7 Dec 2006 16:39:46 +0000 (08:39 -0800)
commitf46ba2235feab5e686b1234c328a0577cde86e21
tree91b800c09f4097462838a930a61adfa93286b2d9
parent15ad7cdcfd76450d4beebc789ec646664238184d
[PATCH] fs: make nls_cp936.c handle some U00XY characters and U20AC correctly

Twenty characters in cp936 are not correctly handled.  They're all in the
U00 plane.  nls_cp936 converts all U00XY to XY but this is not correct for
some characters.(e.g.  U00B7 -> A1A4, U00A8 -> A1A7).

This problem is fixed by generating u2c_00 based on all c2u_xx and changing
uni2char() to give U00 plane a special handling.  The "â\82¬"(U20AC,80 in
cp936) is also be handled properly.

Acked-by: Gang Chen <cgdlut@gmail.com>
Cc: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
fs/nls/nls_cp936.c