From e5c4a3e12ff6d169268856a394b0853ecbca4c2a Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 21 Jul 2005 16:05:19 +0500 Subject: Bug#11216: 'show character set' describes latin1 incorrectly Index.xml: Fixing latin1 comment: it is actually cp1252, not iso-8859-1 ctype_latin1.result: changeing test results accordingly. ctype-latin1.c: Fixed to- and from-Unicode conversion maps for better Unicode round trip of undefined characters. strings/ctype-latin1.c: Bug#11216: 'show character set' describes latin1 incorrectly Fixed to- and from-Unicode conversion maps. mysql-test/r/ctype_latin1.result: changeing test results accordingly. sql/share/charsets/Index.xml: Fixing comment: iso-8859-1 -> cp1252 --- mysql-test/r/ctype_latin1.result | 10 +++++----- sql/share/charsets/Index.xml | 2 +- strings/ctype-latin1.c | 24 ++++++++++++++++-------- 3 files changed, 22 insertions(+), 14 deletions(-) diff --git a/mysql-test/r/ctype_latin1.result b/mysql-test/r/ctype_latin1.result index 21c40e24fe2..95fca1575ef 100644 --- a/mysql-test/r/ctype_latin1.result +++ b/mysql-test/r/ctype_latin1.result @@ -168,7 +168,7 @@ hex(a) hex(@u:=convert(a using utf8)) hex(@l:=convert(@u using latin1)) a=@l 7E 7E 7E 1 7F 7F 7F 1 80 E282AC 80 1 -81 3F 3F 0 +81 C281 81 1 82 E2809A 82 1 83 C692 83 1 84 E2809E 84 1 @@ -180,10 +180,10 @@ hex(a) hex(@u:=convert(a using utf8)) hex(@l:=convert(@u using latin1)) a=@l 8A C5A0 8A 1 8B E280B9 8B 1 8C C592 8C 1 -8D 3F 3F 0 +8D C28D 8D 1 8E C5BD 8E 1 -8F 3F 3F 0 -90 3F 3F 0 +8F C28F 8F 1 +90 C290 90 1 91 E28098 91 1 92 E28099 92 1 93 E2809C 93 1 @@ -196,7 +196,7 @@ hex(a) hex(@u:=convert(a using utf8)) hex(@l:=convert(@u using latin1)) a=@l 9A C5A1 9A 1 9B E280BA 9B 1 9C C593 9C 1 -9D 3F 3F 0 +9D C29D 9D 1 9E C5BE 9E 1 9F C5B8 9F 1 A0 C2A0 A0 1 diff --git a/sql/share/charsets/Index.xml b/sql/share/charsets/Index.xml index a41ea80564a..ff74de9a02d 100644 --- a/sql/share/charsets/Index.xml +++ b/sql/share/charsets/Index.xml @@ -106,7 +106,7 @@ To make maintaining easier please: Western - ISO 8859-1 West European + cp1252 West European csisolatin1 iso-8859-1 iso-ir-100 diff --git a/strings/ctype-latin1.c b/strings/ctype-latin1.c index 4ab101add5b..07808569fa4 100644 --- a/strings/ctype-latin1.c +++ b/strings/ctype-latin1.c @@ -108,6 +108,13 @@ static uchar sort_order_latin1[] = { - continue to pretend the latin1 character set is ISO 8859-1 - actually allow the storage of euro etc. so it's actually cp1252 + + Also we'll map these five undefined cp1252 character: + 0x81, 0x8D, 0x8F, 0x90, 0x9D + into corresponding control characters: + U+0081, U+008D, U+008F, U+0090, U+009D. + like ISO-8859-1 does. Otherwise, loading "mysqldump" + output doesn't reproduce these undefined characters. */ unsigned short cs_to_uni[256]={ @@ -127,10 +134,10 @@ unsigned short cs_to_uni[256]={ 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, -0x20AC,0x0000,0x201A,0x0192,0x201E,0x2026,0x2020,0x2021, -0x02C6,0x2030,0x0160,0x2039,0x0152,0x0000,0x017D,0x0000, -0x0000,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014, -0x02DC,0x2122,0x0161,0x203A,0x0153,0x0000,0x017E,0x0178, +0x20AC,0x0081,0x201A,0x0192,0x201E,0x2026,0x2020,0x2021, +0x02C6,0x2030,0x0160,0x2039,0x0152,0x008D,0x017D,0x008F, +0x0090,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014, +0x02DC,0x2122,0x0161,0x203A,0x0153,0x009D,0x017E,0x0178, 0x00A0,0x00A1,0x00A2,0x00A3,0x00A4,0x00A5,0x00A6,0x00A7, 0x00A8,0x00A9,0x00AA,0x00AB,0x00AC,0x00AD,0x00AE,0x00AF, 0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7, @@ -161,10 +168,11 @@ unsigned char pl00[256]={ 0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, 0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77, 0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x81,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x8D,0x00,0x8F, +0x90,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x9D,0x00,0x00, + 0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7, 0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7, -- cgit v1.2.1 From 84904fbb15ae964ac3cb2015417dc8ea7170080d Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 21 Jul 2005 16:19:08 +0500 Subject: ctype-latin1.c: removing extra empty line , strings/ctype-latin1.c: removing extra empty line , --- strings/ctype-latin1.c | 1 - 1 file changed, 1 deletion(-) diff --git a/strings/ctype-latin1.c b/strings/ctype-latin1.c index 07808569fa4..9b429fea95c 100644 --- a/strings/ctype-latin1.c +++ b/strings/ctype-latin1.c @@ -172,7 +172,6 @@ unsigned char pl00[256]={ 0x00,0x00,0x00,0x00,0x00,0x8D,0x00,0x8F, 0x90,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x9D,0x00,0x00, - 0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7, 0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7, -- cgit v1.2.1