summaryrefslogtreecommitdiff
path: root/strings
diff options
context:
space:
mode:
authorbar@mysql.com <>2005-07-21 16:05:19 +0500
committerbar@mysql.com <>2005-07-21 16:05:19 +0500
commit6a97af8a02baafc383287e350c875d0da62d50ad (patch)
tree4fdf1326cbde0dcc060144daf1347e94032683e4 /strings
parentb11e78381a909356c9df9739dd8ecde12089a98f (diff)
downloadmariadb-git-6a97af8a02baafc383287e350c875d0da62d50ad.tar.gz
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.
Diffstat (limited to 'strings')
-rw-r--r--strings/ctype-latin1.c24
1 files changed, 16 insertions, 8 deletions
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,