about summary refs log tree commit diff
path: root/iconvdata/ansi_x3.110.c
diff options
context:
space:
mode:
Diffstat (limited to 'iconvdata/ansi_x3.110.c')
-rw-r--r--iconvdata/ansi_x3.110.c23
1 files changed, 18 insertions, 5 deletions
diff --git a/iconvdata/ansi_x3.110.c b/iconvdata/ansi_x3.110.c
index d55af6fba7..ed312a0285 100644
--- a/iconvdata/ansi_x3.110.c
+++ b/iconvdata/ansi_x3.110.c
@@ -319,7 +319,7 @@ static const char from_ucs4[][2] =
   /* 0x00dc */ "\xc8\x55", "\xc2\x59", "\xec\x00", "\xfb\x00", "\xc1\x61",
   /* 0x00e1 */ "\xc2\x61", "\xc3\x61", "\xc4\x61", "\xc8\x61", "\xca\x61",
   /* 0x00e6 */ "\xf1\x00", "\xcb\x63", "\xc1\x65", "\xc2\x65", "\xc3\x65",
-  /* 0x00eb */ "\xc8\x65", "\xc1\x69", "\xc2\xe9", "\xc3\x69", "\xc8\x69",
+  /* 0x00eb */ "\xc8\x65", "\xc1\x69", "\xc2\x69", "\xc3\x69", "\xc8\x69",
   /* 0x00f0 */ "\xf3\x00", "\xc4\x6e", "\xc1\x6f", "\xc2\x6f", "\xc3\x6f",
   /* 0x00f5 */ "\xc4\x6f", "\xc8\x6f", "\xb8\x00", "\xf9\x00", "\xc1\x75",
   /* 0x00fa */ "\xc2\x75", "\xc3\x75", "\xc8\x75", "\xc2\x79", "\xfc\x00",
@@ -487,11 +487,10 @@ static const char from_ucs4[][2] =
 	    tmp[1] = ' ';						      \
 	    cp = tmp;							      \
 	  }								      \
-	else if (ch >= 0x2014 && ch <= 0x2026)				      \
+	else if (ch >= 0x2014 && ch <= 0x201d)				      \
 	  {								      \
-	    static const char map[19] =					      \
-	      "\xd0\x00\x00\x00\xa9\xb9\x00\x00\xaa\xba\x00\x00\x00\x00"      \
-	      "\xd4\x00\x00\x00\xe0";					      \
+	    static const char map[10] =					      \
+	      "\xd0\x00\x00\x00\xa9\xb9\x00\x00\xaa\xba";		      \
 									      \
 	    tmp[0] = map[ch - 0x2014];					      \
 	    if (tmp[0] == '\0')						      \
@@ -502,6 +501,20 @@ static const char from_ucs4[][2] =
 	    tmp[1] = '\0';						      \
 	    cp = tmp;							      \
 	  }								      \
+	else if (ch >= 0x2122 && ch <= 0x2126)				      \
+	  {								      \
+	    static const char map[5] =					      \
+	      "\xd4\x00\x00\x00\xe0";					      \
+									      \
+	    tmp[0] = map[ch - 0x2122];					      \
+	    if (tmp[0] == '\0')						      \
+	      {								      \
+		/* Illegal characters.  */				      \
+		STANDARD_ERR_HANDLER (4);				      \
+	      }								      \
+	    tmp[1] = '\0';						      \
+	    cp = tmp;							      \
+	  }								      \
 	else if (ch >= 0x215b && ch <= 0x215e)				      \
 	  {								      \
 	    tmp[0] = 0xdc + ch - 0x215b;				      \