Commit 6a97af8a authored by bar@mysql.com's avatar bar@mysql.com

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.
parent b11e7838
...@@ -168,7 +168,7 @@ hex(a) hex(@u:=convert(a using utf8)) hex(@l:=convert(@u using latin1)) a=@l ...@@ -168,7 +168,7 @@ hex(a) hex(@u:=convert(a using utf8)) hex(@l:=convert(@u using latin1)) a=@l
7E 7E 7E 1 7E 7E 7E 1
7F 7F 7F 1 7F 7F 7F 1
80 E282AC 80 1 80 E282AC 80 1
81 3F 3F 0 81 C281 81 1
82 E2809A 82 1 82 E2809A 82 1
83 C692 83 1 83 C692 83 1
84 E2809E 84 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 ...@@ -180,10 +180,10 @@ hex(a) hex(@u:=convert(a using utf8)) hex(@l:=convert(@u using latin1)) a=@l
8A C5A0 8A 1 8A C5A0 8A 1
8B E280B9 8B 1 8B E280B9 8B 1
8C C592 8C 1 8C C592 8C 1
8D 3F 3F 0 8D C28D 8D 1
8E C5BD 8E 1 8E C5BD 8E 1
8F 3F 3F 0 8F C28F 8F 1
90 3F 3F 0 90 C290 90 1
91 E28098 91 1 91 E28098 91 1
92 E28099 92 1 92 E28099 92 1
93 E2809C 93 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 ...@@ -196,7 +196,7 @@ hex(a) hex(@u:=convert(a using utf8)) hex(@l:=convert(@u using latin1)) a=@l
9A C5A1 9A 1 9A C5A1 9A 1
9B E280BA 9B 1 9B E280BA 9B 1
9C C593 9C 1 9C C593 9C 1
9D 3F 3F 0 9D C29D 9D 1
9E C5BE 9E 1 9E C5BE 9E 1
9F C5B8 9F 1 9F C5B8 9F 1
A0 C2A0 A0 1 A0 C2A0 A0 1
......
...@@ -106,7 +106,7 @@ To make maintaining easier please: ...@@ -106,7 +106,7 @@ To make maintaining easier please:
<charset name="latin1"> <charset name="latin1">
<family>Western</family> <family>Western</family>
<description>ISO 8859-1 West European</description> <description>cp1252 West European</description>
<alias>csisolatin1</alias> <alias>csisolatin1</alias>
<alias>iso-8859-1</alias> <alias>iso-8859-1</alias>
<alias>iso-ir-100</alias> <alias>iso-ir-100</alias>
......
...@@ -108,6 +108,13 @@ static uchar sort_order_latin1[] = { ...@@ -108,6 +108,13 @@ static uchar sort_order_latin1[] = {
- continue to pretend the latin1 character set is ISO 8859-1 - continue to pretend the latin1 character set is ISO 8859-1
- actually allow the storage of euro etc. so it's actually cp1252 - 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]={ unsigned short cs_to_uni[256]={
...@@ -127,10 +134,10 @@ unsigned short cs_to_uni[256]={ ...@@ -127,10 +134,10 @@ unsigned short cs_to_uni[256]={
0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
0x20AC,0x0000,0x201A,0x0192,0x201E,0x2026,0x2020,0x2021, 0x20AC,0x0081,0x201A,0x0192,0x201E,0x2026,0x2020,0x2021,
0x02C6,0x2030,0x0160,0x2039,0x0152,0x0000,0x017D,0x0000, 0x02C6,0x2030,0x0160,0x2039,0x0152,0x008D,0x017D,0x008F,
0x0000,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014, 0x0090,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014,
0x02DC,0x2122,0x0161,0x203A,0x0153,0x0000,0x017E,0x0178, 0x02DC,0x2122,0x0161,0x203A,0x0153,0x009D,0x017E,0x0178,
0x00A0,0x00A1,0x00A2,0x00A3,0x00A4,0x00A5,0x00A6,0x00A7, 0x00A0,0x00A1,0x00A2,0x00A3,0x00A4,0x00A5,0x00A6,0x00A7,
0x00A8,0x00A9,0x00AA,0x00AB,0x00AC,0x00AD,0x00AE,0x00AF, 0x00A8,0x00A9,0x00AA,0x00AB,0x00AC,0x00AD,0x00AE,0x00AF,
0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7, 0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7,
...@@ -161,10 +168,11 @@ unsigned char pl00[256]={ ...@@ -161,10 +168,11 @@ unsigned char pl00[256]={
0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, 0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F,
0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77, 0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,
0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, 0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x81,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x8D,0x00,0x8F,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x90,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x9D,0x00,0x00,
0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7, 0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,
0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, 0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7, 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment