diff -ub --unidirectional-new-file --recursive -x install libiconv-1.9.1/lib/aliases.gperf libiconv-1.9.1-utf-8b/lib/aliases.gperf
--- libiconv-1.9.1/lib/aliases.gperf	2003-05-22 13:17:15.000000000 -0700
+++ libiconv-1.9.1-utf-8b/lib/aliases.gperf	2006-04-02 17:48:24.000000000 -0700
@@ -21,6 +21,7 @@
 US, ei_ascii
 CSASCII, ei_ascii
 UTF-8, ei_utf8
+UTF-8B, ei_utf8b
 UCS-2, ei_ucs2
 ISO-10646-UCS-2, ei_ucs2
 CSUNICODE, ei_ucs2
diff -ub --unidirectional-new-file --recursive -x install libiconv-1.9.1/lib/aliases.h libiconv-1.9.1-utf-8b/lib/aliases.h
--- libiconv-1.9.1/lib/aliases.h	2006-04-02 19:05:52.000000000 -0700
+++ libiconv-1.9.1-utf-8b/lib/aliases.h	2006-04-02 18:36:37.000000000 -0700
@@ -32,7 +32,7 @@
 #line 1 "lib/aliases.gperf"
 struct alias { int name; unsigned int encoding_index; };
 
-#define TOTAL_KEYWORDS 324
+#define TOTAL_KEYWORDS 325
 #define MIN_WORD_LENGTH 2
 #define MAX_WORD_LENGTH 45
 #define MIN_HASH_VALUE 15
@@ -389,6 +389,7 @@
     char stringpool_str518[sizeof("MACROMAN")];
     char stringpool_str519[sizeof("UCS-2-SWAPPED")];
     char stringpool_str524[sizeof("CSMACINTOSH")];
+    char stringpool_str525[sizeof("UTF-8B")];
     char stringpool_str527[sizeof("BIGFIVE")];
     char stringpool_str528[sizeof("CSISO159JISX02121990")];
     char stringpool_str529[sizeof("CSISO14JISC6220RO")];
@@ -716,6 +717,7 @@
     "MACROMAN",
     "UCS-2-SWAPPED",
     "CSMACINTOSH",
+    "UTF-8B",
     "BIGFIVE",
     "CSISO159JISX02121990",
     "CSISO14JISC6220RO",
@@ -764,809 +766,811 @@
   {
     {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
     {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
-#line 271 "lib/aliases.gperf"
+#line 272 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str15, ei_iso646_cn},
     {-1},
-#line 60 "lib/aliases.gperf"
+#line 61 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str17, ei_iso8859_1},
-#line 68 "lib/aliases.gperf"
+#line 69 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str18, ei_iso8859_2},
     {-1},
-#line 133 "lib/aliases.gperf"
+#line 134 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str20, ei_iso8859_10},
-#line 125 "lib/aliases.gperf"
+#line 126 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str21, ei_iso8859_9},
     {-1}, {-1}, {-1}, {-1},
-#line 147 "lib/aliases.gperf"
+#line 148 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str26, ei_iso8859_14},
     {-1}, {-1},
-#line 196 "lib/aliases.gperf"
+#line 197 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str29, ei_cp862},
-#line 76 "lib/aliases.gperf"
+#line 77 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str30, ei_iso8859_3},
     {-1}, {-1},
-#line 200 "lib/aliases.gperf"
+#line 201 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str33, ei_cp866},
-#line 51 "lib/aliases.gperf"
+#line 52 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str34, ei_c99},
     {-1}, {-1}, {-1},
-#line 301 "lib/aliases.gperf"
+#line 302 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str38, ei_euc_cn},
     {-1}, {-1},
-#line 167 "lib/aliases.gperf"
+#line 168 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str41, ei_cp1251},
     {-1},
-#line 170 "lib/aliases.gperf"
+#line 171 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str43, ei_cp1252},
-#line 194 "lib/aliases.gperf"
+#line 195 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str44, ei_cp862},
-#line 300 "lib/aliases.gperf"
+#line 301 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str45, ei_euc_cn},
     {-1},
-#line 182 "lib/aliases.gperf"
+#line 183 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str47, ei_cp1256},
-#line 198 "lib/aliases.gperf"
+#line 199 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str48, ei_cp866},
-#line 179 "lib/aliases.gperf"
+#line 180 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str49, ei_cp1255},
-#line 311 "lib/aliases.gperf"
+#line 312 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str50, ei_hz},
     {-1},
-#line 331 "lib/aliases.gperf"
+#line 332 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str52, ei_johab},
-#line 294 "lib/aliases.gperf"
+#line 295 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str53, ei_cp932},
     {-1},
-#line 57 "lib/aliases.gperf"
+#line 58 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str55, ei_iso8859_1},
     {-1},
-#line 306 "lib/aliases.gperf"
+#line 307 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str57, ei_ces_gbk},
-#line 265 "lib/aliases.gperf"
+#line 266 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str58, ei_jisx0212},
-#line 188 "lib/aliases.gperf"
+#line 189 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str59, ei_cp1258},
     {-1}, {-1},
-#line 140 "lib/aliases.gperf"
+#line 141 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str62, ei_iso8859_13},
     {-1}, {-1}, {-1}, {-1},
-#line 173 "lib/aliases.gperf"
+#line 174 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str67, ei_cp1253},
     {-1}, {-1}, {-1}, {-1},
-#line 84 "lib/aliases.gperf"
+#line 85 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str72, ei_iso8859_4},
     {-1}, {-1},
-#line 227 "lib/aliases.gperf"
+#line 228 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str75, ei_cp1133},
     {-1},
-#line 219 "lib/aliases.gperf"
+#line 220 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str77, ei_hp_roman8},
     {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
-#line 276 "lib/aliases.gperf"
+#line 277 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str84, ei_gb2312},
-#line 62 "lib/aliases.gperf"
+#line 63 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str85, ei_iso8859_1},
     {-1},
-#line 70 "lib/aliases.gperf"
+#line 71 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str87, ei_iso8859_2},
     {-1}, {-1}, {-1},
-#line 102 "lib/aliases.gperf"
+#line 103 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str91, ei_iso8859_6},
-#line 53 "lib/aliases.gperf"
+#line 54 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str92, ei_iso8859_1},
-#line 93 "lib/aliases.gperf"
+#line 94 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str93, ei_iso8859_5},
-#line 63 "lib/aliases.gperf"
+#line 64 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str94, ei_iso8859_2},
-#line 252 "lib/aliases.gperf"
+#line 253 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str95, ei_jisx0201},
     {-1},
-#line 159 "lib/aliases.gperf"
+#line 160 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str97, ei_iso8859_16},
-#line 94 "lib/aliases.gperf"
+#line 95 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str98, ei_iso8859_6},
-#line 154 "lib/aliases.gperf"
+#line 155 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str99, ei_iso8859_15},
-#line 87 "lib/aliases.gperf"
+#line 88 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str100, ei_iso8859_5},
-#line 127 "lib/aliases.gperf"
+#line 128 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str101, ei_iso8859_9},
     {-1},
-#line 119 "lib/aliases.gperf"
+#line 120 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str103, ei_iso8859_8},
-#line 155 "lib/aliases.gperf"
+#line 156 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str104, ei_iso8859_16},
-#line 192 "lib/aliases.gperf"
+#line 193 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str105, ei_cp850},
-#line 150 "lib/aliases.gperf"
+#line 151 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str106, ei_iso8859_15},
     {-1},
-#line 120 "lib/aliases.gperf"
+#line 121 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str108, ei_iso8859_9},
-#line 328 "lib/aliases.gperf"
+#line 329 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str109, ei_cp949},
-#line 113 "lib/aliases.gperf"
+#line 114 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str110, ei_iso8859_8},
-#line 78 "lib/aliases.gperf"
+#line 79 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str111, ei_iso8859_3},
 #line 16 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str112, ei_ascii},
-#line 258 "lib/aliases.gperf"
+#line 259 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str113, ei_jisx0208},
-#line 91 "lib/aliases.gperf"
+#line 92 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str114, ei_iso8859_5},
     {-1},
-#line 308 "lib/aliases.gperf"
+#line 309 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str116, ei_iso2022_cn},
-#line 141 "lib/aliases.gperf"
+#line 142 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str117, ei_iso8859_13},
-#line 71 "lib/aliases.gperf"
+#line 72 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str118, ei_iso8859_3},
-#line 164 "lib/aliases.gperf"
+#line 165 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str119, ei_cp1250},
-#line 322 "lib/aliases.gperf"
+#line 323 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str120, ei_cp950},
-#line 190 "lib/aliases.gperf"
+#line 191 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str121, ei_cp850},
-#line 269 "lib/aliases.gperf"
+#line 270 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str122, ei_iso646_cn},
-#line 291 "lib/aliases.gperf"
+#line 292 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str123, ei_sjis},
-#line 136 "lib/aliases.gperf"
+#line 137 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str124, ei_iso8859_13},
-#line 106 "lib/aliases.gperf"
+#line 107 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str125, ei_iso8859_7},
-#line 158 "lib/aliases.gperf"
+#line 159 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str126, ei_iso8859_16},
-#line 235 "lib/aliases.gperf"
+#line 236 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str127, ei_tis620},
     {-1},
-#line 277 "lib/aliases.gperf"
+#line 278 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str129, ei_isoir165},
     {-1},
-#line 185 "lib/aliases.gperf"
+#line 186 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str131, ei_cp1257},
 #line 13 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str132, ei_ascii},
     {-1},
-#line 274 "lib/aliases.gperf"
+#line 275 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str134, ei_gb2312},
     {-1},
 #line 19 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str136, ei_ascii},
-#line 59 "lib/aliases.gperf"
+#line 60 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str137, ei_iso8859_1},
-#line 266 "lib/aliases.gperf"
+#line 267 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str138, ei_jisx0212},
-#line 67 "lib/aliases.gperf"
+#line 68 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str139, ei_iso8859_2},
     {-1}, {-1},
-#line 145 "lib/aliases.gperf"
+#line 146 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str142, ei_iso8859_14},
-#line 132 "lib/aliases.gperf"
+#line 133 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str143, ei_iso8859_10},
     {-1},
-#line 124 "lib/aliases.gperf"
+#line 125 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str145, ei_iso8859_9},
-#line 54 "lib/aliases.gperf"
+#line 55 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str146, ei_iso8859_1},
-#line 309 "lib/aliases.gperf"
+#line 310 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str147, ei_iso2022_cn},
-#line 64 "lib/aliases.gperf"
+#line 65 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str148, ei_iso8859_2},
-#line 116 "lib/aliases.gperf"
+#line 117 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str149, ei_iso8859_8},
     {-1},
-#line 176 "lib/aliases.gperf"
+#line 177 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str151, ei_cp1254},
-#line 95 "lib/aliases.gperf"
+#line 96 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str152, ei_iso8859_6},
     {-1},
-#line 88 "lib/aliases.gperf"
+#line 89 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str154, ei_iso8859_5},
-#line 146 "lib/aliases.gperf"
+#line 147 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str155, ei_iso8859_14},
     {-1},
-#line 66 "lib/aliases.gperf"
+#line 67 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str157, ei_iso8859_2},
-#line 156 "lib/aliases.gperf"
+#line 157 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str158, ei_iso8859_16},
-#line 302 "lib/aliases.gperf"
+#line 303 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str159, ei_euc_cn},
-#line 151 "lib/aliases.gperf"
+#line 152 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str160, ei_iso8859_15},
-#line 148 "lib/aliases.gperf"
+#line 149 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str161, ei_iso8859_14},
-#line 121 "lib/aliases.gperf"
+#line 122 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str162, ei_iso8859_9},
-#line 75 "lib/aliases.gperf"
+#line 76 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str163, ei_iso8859_3},
-#line 114 "lib/aliases.gperf"
+#line 115 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str164, ei_iso8859_8},
-#line 329 "lib/aliases.gperf"
+#line 330 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str165, ei_cp949},
     {-1}, {-1}, {-1},
-#line 135 "lib/aliases.gperf"
+#line 136 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str169, ei_iso8859_10},
-#line 152 "lib/aliases.gperf"
+#line 153 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str170, ei_iso8859_15},
-#line 204 "lib/aliases.gperf"
+#line 205 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str171, ei_mac_roman},
-#line 72 "lib/aliases.gperf"
+#line 73 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str172, ei_iso8859_3},
-#line 74 "lib/aliases.gperf"
+#line 75 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str173, ei_iso8859_3},
     {-1},
-#line 112 "lib/aliases.gperf"
+#line 113 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str175, ei_iso8859_7},
-#line 128 "lib/aliases.gperf"
+#line 129 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str176, ei_iso8859_10},
 #line 22 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str177, ei_ascii},
-#line 137 "lib/aliases.gperf"
-    {(int)(long)&((struct stringpool_t *)0)->stringpool_str178, ei_iso8859_13},
 #line 138 "lib/aliases.gperf"
+    {(int)(long)&((struct stringpool_t *)0)->stringpool_str178, ei_iso8859_13},
+#line 139 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str179, ei_iso8859_13},
     {-1}, {-1},
-#line 103 "lib/aliases.gperf"
+#line 104 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str182, ei_iso8859_7},
     {-1},
-#line 153 "lib/aliases.gperf"
+#line 154 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str184, ei_iso8859_15},
     {-1}, {-1}, {-1}, {-1},
-#line 282 "lib/aliases.gperf"
+#line 283 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str189, ei_ksc5601},
-#line 166 "lib/aliases.gperf"
+#line 167 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str190, ei_cp1250},
-#line 123 "lib/aliases.gperf"
+#line 124 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str191, ei_iso8859_9},
 #line 21 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str192, ei_ascii},
     {-1},
-#line 236 "lib/aliases.gperf"
+#line 237 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str194, ei_cp874},
-#line 86 "lib/aliases.gperf"
+#line 87 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str195, ei_iso8859_4},
-#line 82 "lib/aliases.gperf"
+#line 83 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str196, ei_iso8859_4},
-#line 130 "lib/aliases.gperf"
+#line 131 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str197, ei_iso8859_10},
     {-1},
-#line 157 "lib/aliases.gperf"
+#line 158 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str199, ei_iso8859_16},
     {-1},
-#line 149 "lib/aliases.gperf"
+#line 150 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str201, ei_iso8859_14},
-#line 79 "lib/aliases.gperf"
+#line 80 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str202, ei_iso8859_4},
-#line 195 "lib/aliases.gperf"
+#line 196 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str203, ei_cp862},
     {-1}, {-1},
-#line 270 "lib/aliases.gperf"
+#line 271 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str206, ei_iso646_cn},
-#line 199 "lib/aliases.gperf"
+#line 200 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str207, ei_cp866},
-#line 142 "lib/aliases.gperf"
+#line 143 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str208, ei_iso8859_14},
-#line 97 "lib/aliases.gperf"
+#line 98 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str209, ei_iso8859_6},
-#line 310 "lib/aliases.gperf"
+#line 311 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str210, ei_iso2022_cn_ext},
-#line 259 "lib/aliases.gperf"
+#line 260 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str211, ei_jisx0208},
-#line 131 "lib/aliases.gperf"
+#line 132 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str212, ei_iso8859_10},
-#line 24 "lib/aliases.gperf"
+#line 25 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str213, ei_ucs2},
-#line 58 "lib/aliases.gperf"
+#line 59 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str214, ei_iso8859_1},
     {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
-#line 144 "lib/aliases.gperf"
+#line 145 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str221, ei_iso8859_14},
-#line 247 "lib/aliases.gperf"
+#line 248 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str222, ei_iso646_jp},
     {-1}, {-1},
-#line 108 "lib/aliases.gperf"
+#line 109 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str225, ei_iso8859_7},
     {-1},
-#line 139 "lib/aliases.gperf"
+#line 140 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str227, ei_iso8859_13},
-#line 38 "lib/aliases.gperf"
+#line 39 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str228, ei_utf16},
     {-1},
-#line 129 "lib/aliases.gperf"
+#line 130 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str230, ei_iso8859_10},
     {-1},
-#line 26 "lib/aliases.gperf"
+#line 27 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str232, ei_ucs2},
-#line 31 "lib/aliases.gperf"
+#line 32 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str233, ei_ucs2le},
 #line 23 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str234, ei_utf8},
-#line 56 "lib/aliases.gperf"
+#line 57 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str235, ei_iso8859_1},
-#line 104 "lib/aliases.gperf"
+#line 105 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str236, ei_iso8859_7},
-#line 41 "lib/aliases.gperf"
+#line 42 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str237, ei_utf32},
-#line 334 "lib/aliases.gperf"
+#line 335 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str238, ei_local_char},
     {-1}, {-1},
-#line 29 "lib/aliases.gperf"
-    {(int)(long)&((struct stringpool_t *)0)->stringpool_str241, ei_ucs2be},
 #line 30 "lib/aliases.gperf"
+    {(int)(long)&((struct stringpool_t *)0)->stringpool_str241, ei_ucs2be},
+#line 31 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str242, ei_ucs2be},
     {-1},
-#line 230 "lib/aliases.gperf"
+#line 231 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str244, ei_tis620},
-#line 326 "lib/aliases.gperf"
+#line 327 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str245, ei_euc_kr},
-#line 40 "lib/aliases.gperf"
+#line 41 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str246, ei_utf16le},
-#line 83 "lib/aliases.gperf"
+#line 84 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str247, ei_iso8859_4},
     {-1}, {-1},
-#line 279 "lib/aliases.gperf"
+#line 280 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str250, ei_ksc5601},
-#line 229 "lib/aliases.gperf"
+#line 230 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str251, ei_tis620},
-#line 325 "lib/aliases.gperf"
+#line 326 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str252, ei_euc_kr},
     {-1},
-#line 228 "lib/aliases.gperf"
+#line 229 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str254, ei_cp1133},
     {-1},
-#line 80 "lib/aliases.gperf"
+#line 81 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str256, ei_iso8859_4},
-#line 43 "lib/aliases.gperf"
+#line 44 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str257, ei_utf32le},
-#line 238 "lib/aliases.gperf"
+#line 239 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str258, ei_viscii},
-#line 160 "lib/aliases.gperf"
+#line 161 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str259, ei_koi8_r},
     {-1}, {-1},
-#line 143 "lib/aliases.gperf"
+#line 144 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str262, ei_iso8859_14},
     {-1},
-#line 161 "lib/aliases.gperf"
+#line 162 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str264, ei_koi8_r},
     {-1},
-#line 109 "lib/aliases.gperf"
+#line 110 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str266, ei_iso8859_7},
-#line 169 "lib/aliases.gperf"
+#line 170 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str267, ei_cp1251},
     {-1}, {-1},
-#line 240 "lib/aliases.gperf"
+#line 241 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str270, ei_viscii},
     {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
-#line 191 "lib/aliases.gperf"
+#line 192 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str280, ei_cp850},
     {-1}, {-1},
-#line 90 "lib/aliases.gperf"
+#line 91 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str283, ei_iso8859_5},
     {-1}, {-1},
-#line 316 "lib/aliases.gperf"
+#line 317 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str286, ei_ces_big5},
-#line 37 "lib/aliases.gperf"
+#line 38 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str287, ei_ucs4le},
-#line 307 "lib/aliases.gperf"
+#line 308 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str288, ei_gb18030},
     {-1},
-#line 210 "lib/aliases.gperf"
+#line 211 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str290, ei_mac_cyrillic},
-#line 46 "lib/aliases.gperf"
+#line 47 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str291, ei_utf7},
-#line 45 "lib/aliases.gperf"
+#line 46 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str292, ei_utf7},
-#line 317 "lib/aliases.gperf"
+#line 318 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str293, ei_ces_big5},
     {-1},
 #line 20 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str295, ei_ascii},
-#line 231 "lib/aliases.gperf"
+#line 232 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str296, ei_tis620},
     {-1},
-#line 321 "lib/aliases.gperf"
+#line 322 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str298, ei_ces_big5},
-#line 221 "lib/aliases.gperf"
+#line 222 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str299, ei_nextstep},
     {-1},
-#line 283 "lib/aliases.gperf"
+#line 284 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str301, ei_ksc5601},
-#line 61 "lib/aliases.gperf"
+#line 62 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str302, ei_iso8859_1},
-#line 284 "lib/aliases.gperf"
+#line 285 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str303, ei_ksc5601},
-#line 69 "lib/aliases.gperf"
+#line 70 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str304, ei_iso8859_2},
-#line 320 "lib/aliases.gperf"
+#line 321 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str305, ei_ces_big5},
-#line 44 "lib/aliases.gperf"
+#line 45 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str306, ei_utf7},
     {-1},
-#line 134 "lib/aliases.gperf"
+#line 135 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str308, ei_iso8859_10},
-#line 92 "lib/aliases.gperf"
+#line 93 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str309, ei_iso8859_5},
-#line 126 "lib/aliases.gperf"
+#line 127 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str310, ei_iso8859_9},
     {-1},
-#line 241 "lib/aliases.gperf"
+#line 242 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str312, ei_tcvn},
     {-1}, {-1},
-#line 232 "lib/aliases.gperf"
+#line 233 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str315, ei_tis620},
     {-1}, {-1},
-#line 304 "lib/aliases.gperf"
+#line 305 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str318, ei_euc_cn},
     {-1},
-#line 25 "lib/aliases.gperf"
+#line 26 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str320, ei_ucs2},
-#line 33 "lib/aliases.gperf"
+#line 34 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str321, ei_ucs4},
-#line 226 "lib/aliases.gperf"
+#line 227 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str322, ei_mulelao},
-#line 332 "lib/aliases.gperf"
+#line 333 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str323, ei_iso2022_kr},
-#line 107 "lib/aliases.gperf"
+#line 108 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str324, ei_iso8859_7},
-#line 273 "lib/aliases.gperf"
+#line 274 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str325, ei_gb2312},
-#line 35 "lib/aliases.gperf"
+#line 36 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str326, ei_ucs4},
-#line 305 "lib/aliases.gperf"
+#line 306 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str327, ei_ces_gbk},
-#line 77 "lib/aliases.gperf"
+#line 78 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str328, ei_iso8859_3},
 #line 14 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str329, ei_ascii},
     {-1},
 #line 12 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str331, ei_ascii},
-#line 234 "lib/aliases.gperf"
+#line 235 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str332, ei_tis620},
-#line 225 "lib/aliases.gperf"
+#line 226 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str333, ei_koi8_t},
-#line 172 "lib/aliases.gperf"
+#line 173 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str334, ei_cp1252},
-#line 281 "lib/aliases.gperf"
+#line 282 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str335, ei_ksc5601},
-#line 268 "lib/aliases.gperf"
+#line 269 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str336, ei_iso646_cn},
     {-1}, {-1},
-#line 314 "lib/aliases.gperf"
+#line 315 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str339, ei_euc_tw},
     {-1}, {-1}, {-1},
-#line 110 "lib/aliases.gperf"
+#line 111 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str343, ei_iso8859_7},
     {-1}, {-1},
-#line 313 "lib/aliases.gperf"
+#line 314 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str346, ei_euc_tw},
-#line 168 "lib/aliases.gperf"
+#line 169 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str347, ei_cp1251},
-#line 171 "lib/aliases.gperf"
+#line 172 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str348, ei_cp1252},
-#line 248 "lib/aliases.gperf"
+#line 249 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str349, ei_iso646_jp},
-#line 183 "lib/aliases.gperf"
+#line 184 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str350, ei_cp1256},
-#line 180 "lib/aliases.gperf"
+#line 181 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str351, ei_cp1255},
     {-1},
-#line 239 "lib/aliases.gperf"
+#line 240 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str353, ei_viscii},
-#line 333 "lib/aliases.gperf"
+#line 334 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str354, ei_iso2022_kr},
     {-1},
-#line 189 "lib/aliases.gperf"
+#line 190 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str356, ei_cp1258},
     {-1}, {-1}, {-1},
-#line 174 "lib/aliases.gperf"
+#line 175 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str360, ei_cp1253},
-#line 222 "lib/aliases.gperf"
+#line 223 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str361, ei_armscii_8},
     {-1}, {-1}, {-1}, {-1},
-#line 201 "lib/aliases.gperf"
+#line 202 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str366, ei_cp866},
     {-1},
-#line 218 "lib/aliases.gperf"
+#line 219 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str368, ei_hp_roman8},
-#line 312 "lib/aliases.gperf"
+#line 313 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str369, ei_hz},
-#line 286 "lib/aliases.gperf"
+#line 287 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str370, ei_euc_jp},
-#line 233 "lib/aliases.gperf"
+#line 234 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str371, ei_tis620},
-#line 280 "lib/aliases.gperf"
+#line 281 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str372, ei_ksc5601},
-#line 207 "lib/aliases.gperf"
+#line 208 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str373, ei_mac_iceland},
-#line 34 "lib/aliases.gperf"
+#line 35 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str374, ei_ucs4},
-#line 27 "lib/aliases.gperf"
+#line 28 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str375, ei_ucs2be},
     {-1},
-#line 285 "lib/aliases.gperf"
+#line 286 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str377, ei_euc_jp},
     {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
-#line 165 "lib/aliases.gperf"
+#line 166 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str386, ei_cp1250},
-#line 100 "lib/aliases.gperf"
+#line 101 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str387, ei_iso8859_6},
-#line 39 "lib/aliases.gperf"
+#line 40 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str388, ei_utf16be},
     {-1}, {-1},
-#line 242 "lib/aliases.gperf"
+#line 243 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str391, ei_tcvn},
-#line 186 "lib/aliases.gperf"
+#line 187 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str392, ei_cp1257},
     {-1},
-#line 197 "lib/aliases.gperf"
+#line 198 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str394, ei_cp862},
     {-1},
-#line 243 "lib/aliases.gperf"
+#line 244 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str396, ei_tcvn},
     {-1}, {-1},
-#line 42 "lib/aliases.gperf"
+#line 43 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str399, ei_utf32be},
     {-1}, {-1},
-#line 177 "lib/aliases.gperf"
+#line 178 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str402, ei_cp1254},
     {-1},
-#line 327 "lib/aliases.gperf"
+#line 328 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str404, ei_euc_kr},
     {-1},
-#line 99 "lib/aliases.gperf"
+#line 100 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str406, ei_iso8859_6},
     {-1}, {-1},
-#line 101 "lib/aliases.gperf"
+#line 102 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str409, ei_iso8859_6},
-#line 203 "lib/aliases.gperf"
+#line 204 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str410, ei_mac_roman},
-#line 47 "lib/aliases.gperf"
+#line 48 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str411, ei_ucs2internal},
-#line 85 "lib/aliases.gperf"
+#line 86 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str412, ei_iso8859_4},
     {-1}, {-1}, {-1},
-#line 98 "lib/aliases.gperf"
+#line 99 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str416, ei_iso8859_6},
     {-1},
-#line 278 "lib/aliases.gperf"
+#line 279 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str418, ei_isoir165},
     {-1},
 #line 18 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str420, ei_ascii},
-#line 272 "lib/aliases.gperf"
+#line 273 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str421, ei_iso646_cn},
     {-1},
-#line 275 "lib/aliases.gperf"
+#line 276 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str423, ei_gb2312},
-#line 217 "lib/aliases.gperf"
+#line 218 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str424, ei_hp_roman8},
     {-1},
 #line 17 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str426, ei_ascii},
-#line 216 "lib/aliases.gperf"
+#line 217 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str427, ei_mac_thai},
     {-1},
-#line 36 "lib/aliases.gperf"
+#line 37 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str429, ei_ucs4be},
-#line 220 "lib/aliases.gperf"
+#line 221 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str430, ei_hp_roman8},
     {-1},
-#line 303 "lib/aliases.gperf"
+#line 304 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str432, ei_euc_cn},
     {-1},
-#line 32 "lib/aliases.gperf"
+#line 33 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str434, ei_ucs2le},
-#line 89 "lib/aliases.gperf"
+#line 90 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str435, ei_iso8859_5},
     {-1}, {-1},
-#line 122 "lib/aliases.gperf"
+#line 123 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str438, ei_iso8859_9},
     {-1},
-#line 115 "lib/aliases.gperf"
+#line 116 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str440, ei_iso8859_8},
-#line 162 "lib/aliases.gperf"
+#line 163 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str441, ei_koi8_u},
     {-1}, {-1},
-#line 73 "lib/aliases.gperf"
+#line 74 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str444, ei_iso8859_3},
     {-1}, {-1}, {-1},
-#line 295 "lib/aliases.gperf"
+#line 296 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str448, ei_iso2022_jp},
-#line 297 "lib/aliases.gperf"
-    {(int)(long)&((struct stringpool_t *)0)->stringpool_str449, ei_iso2022_jp1},
 #line 298 "lib/aliases.gperf"
+    {(int)(long)&((struct stringpool_t *)0)->stringpool_str449, ei_iso2022_jp1},
+#line 299 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str450, ei_iso2022_jp2},
-#line 118 "lib/aliases.gperf"
+#line 119 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str451, ei_iso8859_8},
     {-1}, {-1},
-#line 246 "lib/aliases.gperf"
+#line 247 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str454, ei_iso646_jp},
     {-1}, {-1},
-#line 287 "lib/aliases.gperf"
+#line 288 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str457, ei_euc_jp},
     {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
-#line 49 "lib/aliases.gperf"
+#line 50 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str465, ei_ucs4internal},
     {-1},
-#line 55 "lib/aliases.gperf"
+#line 56 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str467, ei_iso8859_1},
-#line 65 "lib/aliases.gperf"
+#line 66 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str468, ei_iso8859_2},
     {-1},
-#line 96 "lib/aliases.gperf"
+#line 97 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str470, ei_iso8859_6},
     {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
-#line 296 "lib/aliases.gperf"
+#line 297 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str479, ei_iso2022_jp},
-#line 299 "lib/aliases.gperf"
+#line 300 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str480, ei_iso2022_jp2},
     {-1}, {-1}, {-1}, {-1}, {-1},
-#line 81 "lib/aliases.gperf"
+#line 82 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str486, ei_iso8859_4},
     {-1}, {-1},
-#line 206 "lib/aliases.gperf"
+#line 207 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str489, ei_mac_centraleurope},
     {-1}, {-1},
-#line 117 "lib/aliases.gperf"
+#line 118 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str492, ei_iso8859_8},
     {-1},
-#line 181 "lib/aliases.gperf"
+#line 182 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str494, ei_cp1255},
     {-1},
 #line 15 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str496, ei_ascii},
     {-1},
-#line 315 "lib/aliases.gperf"
+#line 316 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str498, ei_euc_tw},
     {-1}, {-1}, {-1}, {-1},
-#line 163 "lib/aliases.gperf"
+#line 164 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str503, ei_koi8_ru},
     {-1},
-#line 237 "lib/aliases.gperf"
+#line 238 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str505, ei_cp874},
     {-1}, {-1},
-#line 257 "lib/aliases.gperf"
+#line 258 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str508, ei_jisx0208},
-#line 224 "lib/aliases.gperf"
+#line 225 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str509, ei_georgian_ps},
     {-1}, {-1},
-#line 105 "lib/aliases.gperf"
+#line 106 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str512, ei_iso8859_7},
     {-1},
-#line 111 "lib/aliases.gperf"
+#line 112 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str514, ei_iso8859_7},
-#line 260 "lib/aliases.gperf"
+#line 261 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str515, ei_jisx0208},
     {-1}, {-1},
-#line 202 "lib/aliases.gperf"
+#line 203 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str518, ei_mac_roman},
-#line 48 "lib/aliases.gperf"
+#line 49 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str519, ei_ucs2swapped},
     {-1}, {-1}, {-1}, {-1},
-#line 205 "lib/aliases.gperf"
+#line 206 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str524, ei_mac_roman},
-    {-1}, {-1},
-#line 319 "lib/aliases.gperf"
+#line 24 "lib/aliases.gperf"
+    {(int)(long)&((struct stringpool_t *)0)->stringpool_str525, ei_utf8b},
+    {-1},
+#line 320 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str527, ei_ces_big5},
-#line 267 "lib/aliases.gperf"
+#line 268 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str528, ei_jisx0212},
-#line 249 "lib/aliases.gperf"
+#line 250 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str529, ei_iso646_jp},
-#line 193 "lib/aliases.gperf"
+#line 194 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str530, ei_cp850},
     {-1}, {-1}, {-1},
-#line 318 "lib/aliases.gperf"
+#line 319 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str534, ei_ces_big5},
     {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
-#line 245 "lib/aliases.gperf"
+#line 246 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str541, ei_iso646_jp},
     {-1}, {-1}, {-1},
-#line 262 "lib/aliases.gperf"
+#line 263 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str545, ei_jisx0212},
     {-1}, {-1}, {-1},
-#line 324 "lib/aliases.gperf"
+#line 325 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str549, ei_big5hkscs},
     {-1}, {-1}, {-1},
-#line 251 "lib/aliases.gperf"
+#line 252 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str553, ei_jisx0201},
-#line 223 "lib/aliases.gperf"
+#line 224 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str554, ei_georgian_academy},
     {-1},
-#line 323 "lib/aliases.gperf"
+#line 324 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str556, ei_big5hkscs},
     {-1}, {-1}, {-1},
-#line 261 "lib/aliases.gperf"
+#line 262 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str560, ei_jisx0208},
     {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
-#line 212 "lib/aliases.gperf"
+#line 213 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str570, ei_mac_greek},
-#line 175 "lib/aliases.gperf"
+#line 176 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str571, ei_cp1253},
     {-1},
-#line 50 "lib/aliases.gperf"
+#line 51 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str573, ei_ucs4swapped},
     {-1}, {-1}, {-1}, {-1},
-#line 208 "lib/aliases.gperf"
+#line 209 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str578, ei_mac_croatian},
     {-1}, {-1}, {-1},
-#line 250 "lib/aliases.gperf"
+#line 251 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str582, ei_jisx0201},
     {-1}, {-1},
-#line 335 "lib/aliases.gperf"
+#line 336 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str585, ei_local_wchar_t},
     {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
-#line 28 "lib/aliases.gperf"
+#line 29 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str594, ei_ucs2be},
     {-1}, {-1}, {-1}, {-1},
-#line 264 "lib/aliases.gperf"
+#line 265 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str599, ei_jisx0212},
-#line 254 "lib/aliases.gperf"
+#line 255 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str600, ei_jisx0208},
     {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
     {-1}, {-1}, {-1}, {-1},
-#line 215 "lib/aliases.gperf"
+#line 216 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str614, ei_mac_arabic},
     {-1}, {-1}, {-1}, {-1},
-#line 253 "lib/aliases.gperf"
+#line 254 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str619, ei_jisx0201},
-#line 255 "lib/aliases.gperf"
+#line 256 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str620, ei_jisx0208},
-#line 290 "lib/aliases.gperf"
+#line 291 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str621, ei_sjis},
     {-1}, {-1}, {-1}, {-1},
-#line 211 "lib/aliases.gperf"
+#line 212 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str626, ei_mac_ukraine},
     {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
-#line 288 "lib/aliases.gperf"
+#line 289 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str635, ei_euc_jp},
     {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
     {-1},
-#line 256 "lib/aliases.gperf"
+#line 257 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str646, ei_jisx0208},
     {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
     {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
-#line 293 "lib/aliases.gperf"
+#line 294 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str663, ei_sjis},
-#line 263 "lib/aliases.gperf"
+#line 264 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str664, ei_jisx0212},
-#line 214 "lib/aliases.gperf"
+#line 215 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str665, ei_mac_hebrew},
     {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
-#line 289 "lib/aliases.gperf"
+#line 290 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str675, ei_sjis},
     {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
-#line 244 "lib/aliases.gperf"
+#line 245 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str685, ei_tcvn},
     {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
-#line 178 "lib/aliases.gperf"
+#line 179 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str694, ei_cp1254},
     {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
     {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
     {-1}, {-1}, {-1}, {-1},
-#line 213 "lib/aliases.gperf"
+#line 214 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str717, ei_mac_turkish},
     {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
     {-1}, {-1}, {-1}, {-1},
-#line 209 "lib/aliases.gperf"
+#line 210 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str731, ei_mac_romania},
     {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
     {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
-#line 184 "lib/aliases.gperf"
+#line 185 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str750, ei_cp1256},
     {-1}, {-1},
-#line 52 "lib/aliases.gperf"
+#line 53 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str753, ei_java},
     {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
     {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
     {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
     {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
     {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
-#line 292 "lib/aliases.gperf"
+#line 293 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str798, ei_sjis},
-#line 330 "lib/aliases.gperf"
+#line 331 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str799, ei_johab},
     {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
     {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
@@ -1577,7 +1581,7 @@
     {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
     {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
     {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
-#line 187 "lib/aliases.gperf"
+#line 188 "lib/aliases.gperf"
     {(int)(long)&((struct stringpool_t *)0)->stringpool_str879, ei_cp1257}
   };
 
diff -ub --unidirectional-new-file --recursive -x install libiconv-1.9.1/lib/converters.h libiconv-1.9.1-utf-8b/lib/converters.h
--- libiconv-1.9.1/lib/converters.h	2002-05-29 07:06:52.000000000 -0700
+++ libiconv-1.9.1-utf-8b/lib/converters.h	2006-04-02 18:36:31.000000000 -0700
@@ -108,6 +108,7 @@
 
 /* General multi-byte encodings */
 #include "utf8.h"
+#include "utf8b.h"
 #include "ucs2.h"
 #include "ucs2be.h"
 #include "ucs2le.h"
diff -ub --unidirectional-new-file --recursive -x install libiconv-1.9.1/lib/encodings.def libiconv-1.9.1-utf-8b/lib/encodings.def
--- libiconv-1.9.1/lib/encodings.def	2003-04-24 03:48:06.000000000 -0700
+++ libiconv-1.9.1-utf-8b/lib/encodings.def	2006-04-02 18:34:27.000000000 -0700
@@ -60,6 +60,12 @@
             utf8,
             { utf8_mbtowc, NULL },        { utf8_wctomb, NULL })
 
+DEFENCODING(( "UTF-8B",                 /* proposed by Markus Kuhn */
+              "UTF8B",                  /* unofficial alias for the punctuation-challenged */
+            ),
+            utf8b,
+            { utf8b_mbtowc, NULL },       { utf8b_wctomb, NULL })
+
 DEFENCODING(( "UCS-2",                  /* glibc */
               "ISO-10646-UCS-2",        /* IANA */
               "csUnicode",              /* IANA */
diff -ub --unidirectional-new-file --recursive -x install libiconv-1.9.1/lib/flags.h libiconv-1.9.1-utf-8b/lib/flags.h
--- libiconv-1.9.1/lib/flags.h	2003-05-06 02:18:02.000000000 -0700
+++ libiconv-1.9.1-utf-8b/lib/flags.h	2006-03-27 10:28:02.000000000 -0800
@@ -14,6 +14,7 @@
 
 #define ei_ascii_oflags (0)
 #define ei_utf8_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO)
+#define ei_utf8b_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO)
 #define ei_ucs2_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO)
 #define ei_ucs2be_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO)
 #define ei_ucs2le_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO)
diff -ub --unidirectional-new-file --recursive -x install libiconv-1.9.1/lib/utf8b.h libiconv-1.9.1-utf-8b/lib/utf8b.h
--- libiconv-1.9.1/lib/utf8b.h	1969-12-31 16:00:00.000000000 -0800
+++ libiconv-1.9.1-utf-8b/lib/utf8b.h	2006-04-02 18:36:15.000000000 -0700
@@ -0,0 +1,88 @@
+/*
+ * Copyright (C) 1999-2001 Free Software Foundation, Inc.
+ * This file is part of the GNU LIBICONV Library.
+ *
+ * The GNU LIBICONV Library is free software; you can redistribute it
+ * and/or modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * The GNU LIBICONV Library is distributed in the hope that it will be
+ * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with the GNU LIBICONV Library; see the file COPYING.LIB.
+ * If not, write to the Free Software Foundation, Inc., 59 Temple Place -
+ * Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+/*
+ * UTF-8B
+ */
+
+/*
+
+UTF-8B is a binary-preserving codec for UTF-8 first proposed
+1999-11-02 by Markus Kuhn on the unicode@unicode.org mailing list.
+
+See the linux-utf8@nl.linux.org discussion of the technique starting
+with Markus Kuhn's post, where UTF-8B is described as Option D.
+
+From: Markus Kuhn <Markus.Kuhn@cl.cam.ac.uk>
+Subject: Substituting malformed UTF-8 sequences in a decoder
+Date: Sun, 23 Jul 2000 22:44:35 +0100
+Message-Id: <E13GJ5O-00064N-00@wisbech.cl.cam.ac.uk>
+
+Summary: use U+DCyz to represent each invalid input byte 0xyz rather
+than treating these bytes as decoding errors.
+
+Archived at:
+http://mail.nl.linux.org/linux-utf8/2000-07/msg00040.html
+
+IMPLEMENTATION NOTES:
+
+This implementation of UTF-8B produces no errors on decoding, but
+produces encoding errors for Unicode characters that cannot be
+round-tripped successfully. The supported Unicode range is the UTF-16
+range:
+
+    U+0000 ... U+D7FF
+and U+E000 ... U+10FFFF
+
+ */
+
+static int
+utf8_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n);
+
+static int
+utf8_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n); /* n == 0 is acceptable */
+
+static int
+utf8b_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
+{
+  unsigned char c = s[0];
+  int ret;
+
+  ret = utf8_mbtowc (conv, pwc, s, n);
+  if ((ret == RET_ILSEQ) || (ret >= 1) && (ret <= 6) && ((*pwc > 0x10ffff) || ((*pwc >= 0xd800) && (*pwc <= 0xdfff)))) {
+    *pwc = ((ucs4_t) s[0]) | 0xdc00;
+    return 1;
+  }
+  return ret;
+}
+
+static int
+utf8b_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) /* n == 0 is acceptable */
+{
+  if ((wc & 0x7fffff80UL) == 0xdc80UL) {
+    if (! n)
+      return RET_TOOSMALL;
+    r[0] = wc & 0xffUL;
+    return 1;
+  }
+  if ((wc > 0x10ffffUL) || ((wc >= 0xd800UL) && (wc <= 0xdfffUL)))
+    return RET_ILUNI;
+  return utf8_wctomb(conv, r, wc, n);
+}
