diff options
| author | Ron Yorston <rmy@pobox.com> | 2020-02-14 11:07:21 +0000 |
|---|---|---|
| committer | Ron Yorston <rmy@pobox.com> | 2020-02-14 14:32:47 +0000 |
| commit | d8448f76cd40595673b2240b1015f0cbb3f36b56 (patch) | |
| tree | 6fa405eae1861d2358c011e22e4976b601265ef7 | |
| parent | d4b97e26e9486b3f18f17acf199353dcea941364 (diff) | |
| download | busybox-w32-d8448f76cd40595673b2240b1015f0cbb3f36b56.tar.gz busybox-w32-d8448f76cd40595673b2240b1015f0cbb3f36b56.tar.bz2 busybox-w32-d8448f76cd40595673b2240b1015f0cbb3f36b56.zip | |
iconv: code shrink
Reduce the size of the codepage alias table by concatenating the
alias strings rather than storing pointers to them.
Saves 1328 bytes.
| -rw-r--r-- | miscutils/iconv.c | 913 |
1 files changed, 457 insertions, 456 deletions
diff --git a/miscutils/iconv.c b/miscutils/iconv.c index c3289982d..ce0b2087c 100644 --- a/miscutils/iconv.c +++ b/miscutils/iconv.c | |||
| @@ -132,458 +132,448 @@ static int iso2022jp_mbtowc(csconv_t *cv, const uchar *buf, int bufsize, ushort | |||
| 132 | static int iso2022jp_wctomb(csconv_t *cv, ushort *wbuf, int wbufsize, uchar *buf, int bufsize); | 132 | static int iso2022jp_wctomb(csconv_t *cv, ushort *wbuf, int wbufsize, uchar *buf, int bufsize); |
| 133 | static int iso2022jp_flush(csconv_t *cv, uchar *buf, int bufsize); | 133 | static int iso2022jp_flush(csconv_t *cv, uchar *buf, int bufsize); |
| 134 | 134 | ||
| 135 | static struct { | 135 | #define CP_ALIAS_LIST \ |
| 136 | int codepage; | 136 | CP_ALIAS(65001, "CP65001") \ |
| 137 | const char *name; | 137 | CP_ALIAS(65001, "UTF8") \ |
| 138 | } codepage_alias[] = { | 138 | CP_ALIAS(65001, "UTF-8") \ |
| 139 | {65001, "CP65001"}, | 139 | \ |
| 140 | {65001, "UTF8"}, | 140 | CP_ALIAS(1200, "CP1200") \ |
| 141 | {65001, "UTF-8"}, | 141 | CP_ALIAS(1200, "UTF16LE") \ |
| 142 | 142 | CP_ALIAS(1200, "UTF-16LE") \ | |
| 143 | {1200, "CP1200"}, | 143 | CP_ALIAS(1200, "UCS2LE") \ |
| 144 | {1200, "UTF16LE"}, | 144 | CP_ALIAS(1200, "UCS-2LE") \ |
| 145 | {1200, "UTF-16LE"}, | 145 | CP_ALIAS(1200, "UCS-2-INTERNAL") \ |
| 146 | {1200, "UCS2LE"}, | 146 | \ |
| 147 | {1200, "UCS-2LE"}, | 147 | CP_ALIAS(1201, "CP1201") \ |
| 148 | {1200, "UCS-2-INTERNAL"}, | 148 | CP_ALIAS(1201, "UTF16BE") \ |
| 149 | 149 | CP_ALIAS(1201, "UTF-16BE") \ | |
| 150 | {1201, "CP1201"}, | 150 | CP_ALIAS(1201, "UCS2BE") \ |
| 151 | {1201, "UTF16BE"}, | 151 | CP_ALIAS(1201, "UCS-2BE") \ |
| 152 | {1201, "UTF-16BE"}, | 152 | CP_ALIAS(1201, "unicodeFFFE") \ |
| 153 | {1201, "UCS2BE"}, | 153 | \ |
| 154 | {1201, "UCS-2BE"}, | 154 | CP_ALIAS(12000, "CP12000") \ |
| 155 | {1201, "unicodeFFFE"}, | 155 | CP_ALIAS(12000, "UTF32LE") \ |
| 156 | 156 | CP_ALIAS(12000, "UTF-32LE") \ | |
| 157 | {12000, "CP12000"}, | 157 | CP_ALIAS(12000, "UCS4LE") \ |
| 158 | {12000, "UTF32LE"}, | 158 | CP_ALIAS(12000, "UCS-4LE") \ |
| 159 | {12000, "UTF-32LE"}, | 159 | \ |
| 160 | {12000, "UCS4LE"}, | 160 | CP_ALIAS(12001, "CP12001") \ |
| 161 | {12000, "UCS-4LE"}, | 161 | CP_ALIAS(12001, "UTF32BE") \ |
| 162 | 162 | CP_ALIAS(12001, "UTF-32BE") \ | |
| 163 | {12001, "CP12001"}, | 163 | CP_ALIAS(12001, "UCS4BE") \ |
| 164 | {12001, "UTF32BE"}, | 164 | CP_ALIAS(12001, "UCS-4BE") \ |
| 165 | {12001, "UTF-32BE"}, | 165 | \ |
| 166 | {12001, "UCS4BE"}, | 166 | /* Default is little endian, because the platform is */ \ |
| 167 | {12001, "UCS-4BE"}, | 167 | CP_ALIAS(1200, "UTF16") \ |
| 168 | 168 | CP_ALIAS(1200, "UTF-16") \ | |
| 169 | #ifndef GLIB_COMPILATION | 169 | CP_ALIAS(1200, "UCS2") \ |
| 170 | /* | 170 | CP_ALIAS(1200, "UCS-2") \ |
| 171 | * Default is big endian. | 171 | CP_ALIAS(12000, "UTF32") \ |
| 172 | * See rfc2781 4.3 Interpreting text labelled as UTF-16. | 172 | CP_ALIAS(12000, "UTF-32") \ |
| 173 | */ | 173 | CP_ALIAS(12000, "UCS4") \ |
| 174 | {1201, "UTF16"}, | 174 | CP_ALIAS(12000, "UCS-4") \ |
| 175 | {1201, "UTF-16"}, | 175 | \ |
| 176 | {1201, "UCS2"}, | 176 | /* copy from libiconv `iconv -l` */ \ |
| 177 | {1201, "UCS-2"}, | 177 | /* !IsValidCodePage(367) */ \ |
| 178 | {12001, "UTF32"}, | 178 | CP_ALIAS(20127, "ANSI_X3.4-1968") \ |
| 179 | {12001, "UTF-32"}, | 179 | CP_ALIAS(20127, "ANSI_X3.4-1986") \ |
| 180 | {12001, "UCS-4"}, | 180 | CP_ALIAS(20127, "ASCII") \ |
| 181 | {12001, "UCS4"}, | 181 | CP_ALIAS(20127, "CP367") \ |
| 182 | #else | 182 | CP_ALIAS(20127, "IBM367") \ |
| 183 | /* Default is little endian, because the platform is */ | 183 | CP_ALIAS(20127, "ISO-IR-6") \ |
| 184 | {1200, "UTF16"}, | 184 | CP_ALIAS(20127, "ISO646-US") \ |
| 185 | {1200, "UTF-16"}, | 185 | CP_ALIAS(20127, "ISO_646.IRV:1991") \ |
| 186 | {1200, "UCS2"}, | 186 | CP_ALIAS(20127, "US") \ |
| 187 | {1200, "UCS-2"}, | 187 | CP_ALIAS(20127, "US-ASCII") \ |
| 188 | {12000, "UTF32"}, | 188 | CP_ALIAS(20127, "CSASCII") \ |
| 189 | {12000, "UTF-32"}, | 189 | \ |
| 190 | {12000, "UCS4"}, | 190 | /* !IsValidCodePage(819) */ \ |
| 191 | {12000, "UCS-4"}, | 191 | CP_ALIAS(1252, "CP819") \ |
| 192 | #endif | 192 | CP_ALIAS(1252, "IBM819") \ |
| 193 | 193 | CP_ALIAS(28591, "ISO-8859-1") \ | |
| 194 | /* copy from libiconv `iconv -l` */ | 194 | CP_ALIAS(28591, "ISO-IR-100") \ |
| 195 | /* !IsValidCodePage(367) */ | 195 | CP_ALIAS(28591, "ISO8859-1") \ |
| 196 | {20127, "ANSI_X3.4-1968"}, | 196 | CP_ALIAS(28591, "ISO_8859-1") \ |
| 197 | {20127, "ANSI_X3.4-1986"}, | 197 | CP_ALIAS(28591, "ISO_8859-1:1987") \ |
| 198 | {20127, "ASCII"}, | 198 | CP_ALIAS(28591, "L1") \ |
| 199 | {20127, "CP367"}, | 199 | CP_ALIAS(28591, "LATIN1") \ |
| 200 | {20127, "IBM367"}, | 200 | CP_ALIAS(28591, "CSISOLATIN1") \ |
| 201 | {20127, "ISO-IR-6"}, | 201 | \ |
| 202 | {20127, "ISO646-US"}, | 202 | CP_ALIAS(1250, "CP1250") \ |
| 203 | {20127, "ISO_646.IRV:1991"}, | 203 | CP_ALIAS(1250, "MS-EE") \ |
| 204 | {20127, "US"}, | 204 | CP_ALIAS(1250, "WINDOWS-1250") \ |
| 205 | {20127, "US-ASCII"}, | 205 | \ |
| 206 | {20127, "CSASCII"}, | 206 | CP_ALIAS(1251, "CP1251") \ |
| 207 | 207 | CP_ALIAS(1251, "MS-CYRL") \ | |
| 208 | /* !IsValidCodePage(819) */ | 208 | CP_ALIAS(1251, "WINDOWS-1251") \ |
| 209 | {1252, "CP819"}, | 209 | \ |
| 210 | {1252, "IBM819"}, | 210 | CP_ALIAS(1252, "CP1252") \ |
| 211 | {28591, "ISO-8859-1"}, | 211 | CP_ALIAS(1252, "MS-ANSI") \ |
| 212 | {28591, "ISO-IR-100"}, | 212 | CP_ALIAS(1252, "WINDOWS-1252") \ |
| 213 | {28591, "ISO8859-1"}, | 213 | \ |
| 214 | {28591, "ISO_8859-1"}, | 214 | CP_ALIAS(1253, "CP1253") \ |
| 215 | {28591, "ISO_8859-1:1987"}, | 215 | CP_ALIAS(1253, "MS-GREEK") \ |
| 216 | {28591, "L1"}, | 216 | CP_ALIAS(1253, "WINDOWS-1253") \ |
| 217 | {28591, "LATIN1"}, | 217 | \ |
| 218 | {28591, "CSISOLATIN1"}, | 218 | CP_ALIAS(1254, "CP1254") \ |
| 219 | 219 | CP_ALIAS(1254, "MS-TURK") \ | |
| 220 | {1250, "CP1250"}, | 220 | CP_ALIAS(1254, "WINDOWS-1254") \ |
| 221 | {1250, "MS-EE"}, | 221 | \ |
| 222 | {1250, "WINDOWS-1250"}, | 222 | CP_ALIAS(1255, "CP1255") \ |
| 223 | 223 | CP_ALIAS(1255, "MS-HEBR") \ | |
| 224 | {1251, "CP1251"}, | 224 | CP_ALIAS(1255, "WINDOWS-1255") \ |
| 225 | {1251, "MS-CYRL"}, | 225 | \ |
| 226 | {1251, "WINDOWS-1251"}, | 226 | CP_ALIAS(1256, "CP1256") \ |
| 227 | 227 | CP_ALIAS(1256, "MS-ARAB") \ | |
| 228 | {1252, "CP1252"}, | 228 | CP_ALIAS(1256, "WINDOWS-1256") \ |
| 229 | {1252, "MS-ANSI"}, | 229 | \ |
| 230 | {1252, "WINDOWS-1252"}, | 230 | CP_ALIAS(1257, "CP1257") \ |
| 231 | 231 | CP_ALIAS(1257, "WINBALTRIM") \ | |
| 232 | {1253, "CP1253"}, | 232 | CP_ALIAS(1257, "WINDOWS-1257") \ |
| 233 | {1253, "MS-GREEK"}, | 233 | \ |
| 234 | {1253, "WINDOWS-1253"}, | 234 | CP_ALIAS(1258, "CP1258") \ |
| 235 | 235 | CP_ALIAS(1258, "WINDOWS-1258") \ | |
| 236 | {1254, "CP1254"}, | 236 | \ |
| 237 | {1254, "MS-TURK"}, | 237 | CP_ALIAS(850, "850") \ |
| 238 | {1254, "WINDOWS-1254"}, | 238 | CP_ALIAS(850, "CP850") \ |
| 239 | 239 | CP_ALIAS(850, "IBM850") \ | |
| 240 | {1255, "CP1255"}, | 240 | CP_ALIAS(850, "CSPC850MULTILINGUAL") \ |
| 241 | {1255, "MS-HEBR"}, | 241 | \ |
| 242 | {1255, "WINDOWS-1255"}, | 242 | /* !IsValidCodePage(862) */ \ |
| 243 | 243 | CP_ALIAS(862, "862") \ | |
| 244 | {1256, "CP1256"}, | 244 | CP_ALIAS(862, "CP862") \ |
| 245 | {1256, "MS-ARAB"}, | 245 | CP_ALIAS(862, "IBM862") \ |
| 246 | {1256, "WINDOWS-1256"}, | 246 | CP_ALIAS(862, "CSPC862LATINHEBREW") \ |
| 247 | 247 | \ | |
| 248 | {1257, "CP1257"}, | 248 | CP_ALIAS(866, "866") \ |
| 249 | {1257, "WINBALTRIM"}, | 249 | CP_ALIAS(866, "CP866") \ |
| 250 | {1257, "WINDOWS-1257"}, | 250 | CP_ALIAS(866, "IBM866") \ |
| 251 | 251 | CP_ALIAS(866, "CSIBM866") \ | |
| 252 | {1258, "CP1258"}, | 252 | \ |
| 253 | {1258, "WINDOWS-1258"}, | 253 | /* !IsValidCodePage(154) */ \ |
| 254 | 254 | CP_ALIAS(154, "CP154") \ | |
| 255 | {850, "850"}, | 255 | CP_ALIAS(154, "CYRILLIC-ASIAN") \ |
| 256 | {850, "CP850"}, | 256 | CP_ALIAS(154, "PT154") \ |
| 257 | {850, "IBM850"}, | 257 | CP_ALIAS(154, "PTCP154") \ |
| 258 | {850, "CSPC850MULTILINGUAL"}, | 258 | CP_ALIAS(154, "CSPTCP154") \ |
| 259 | 259 | \ | |
| 260 | /* !IsValidCodePage(862) */ | 260 | /* !IsValidCodePage(1133) */ \ |
| 261 | {862, "862"}, | 261 | CP_ALIAS(1133, "CP1133") \ |
| 262 | {862, "CP862"}, | 262 | CP_ALIAS(1133, "IBM-CP1133") \ |
| 263 | {862, "IBM862"}, | 263 | \ |
| 264 | {862, "CSPC862LATINHEBREW"}, | 264 | CP_ALIAS(874, "CP874") \ |
| 265 | 265 | CP_ALIAS(874, "WINDOWS-874") \ | |
| 266 | {866, "866"}, | 266 | \ |
| 267 | {866, "CP866"}, | 267 | /* !IsValidCodePage(51932) */ \ |
| 268 | {866, "IBM866"}, | 268 | CP_ALIAS(51932, "CP51932") \ |
| 269 | {866, "CSIBM866"}, | 269 | CP_ALIAS(51932, "MS51932") \ |
| 270 | 270 | CP_ALIAS(51932, "WINDOWS-51932") \ | |
| 271 | /* !IsValidCodePage(154) */ | 271 | CP_ALIAS(51932, "EUC-JP") \ |
| 272 | {154, "CP154"}, | 272 | \ |
| 273 | {154, "CYRILLIC-ASIAN"}, | 273 | CP_ALIAS(932, "CP932") \ |
| 274 | {154, "PT154"}, | 274 | CP_ALIAS(932, "MS932") \ |
| 275 | {154, "PTCP154"}, | 275 | CP_ALIAS(932, "SHIFFT_JIS") \ |
| 276 | {154, "CSPTCP154"}, | 276 | CP_ALIAS(932, "SHIFFT_JIS-MS") \ |
| 277 | 277 | CP_ALIAS(932, "SJIS") \ | |
| 278 | /* !IsValidCodePage(1133) */ | 278 | CP_ALIAS(932, "SJIS-MS") \ |
| 279 | {1133, "CP1133"}, | 279 | CP_ALIAS(932, "SJIS-OPEN") \ |
| 280 | {1133, "IBM-CP1133"}, | 280 | CP_ALIAS(932, "SJIS-WIN") \ |
| 281 | 281 | CP_ALIAS(932, "WINDOWS-31J") \ | |
| 282 | {874, "CP874"}, | 282 | CP_ALIAS(932, "WINDOWS-932") \ |
| 283 | {874, "WINDOWS-874"}, | 283 | CP_ALIAS(932, "CSWINDOWS31J") \ |
| 284 | 284 | \ | |
| 285 | /* !IsValidCodePage(51932) */ | 285 | CP_ALIAS(50221, "CP50221") \ |
| 286 | {51932, "CP51932"}, | 286 | CP_ALIAS(50221, "ISO-2022-JP") \ |
| 287 | {51932, "MS51932"}, | 287 | CP_ALIAS(50221, "ISO-2022-JP-MS") \ |
| 288 | {51932, "WINDOWS-51932"}, | 288 | CP_ALIAS(50221, "ISO2022-JP") \ |
| 289 | {51932, "EUC-JP"}, | 289 | CP_ALIAS(50221, "ISO2022-JP-MS") \ |
| 290 | 290 | CP_ALIAS(50221, "MS50221") \ | |
| 291 | {932, "CP932"}, | 291 | CP_ALIAS(50221, "WINDOWS-50221") \ |
| 292 | {932, "MS932"}, | 292 | \ |
| 293 | {932, "SHIFFT_JIS"}, | 293 | CP_ALIAS(936, "CP936") \ |
| 294 | {932, "SHIFFT_JIS-MS"}, | 294 | CP_ALIAS(936, "GBK") \ |
| 295 | {932, "SJIS"}, | 295 | CP_ALIAS(936, "MS936") \ |
| 296 | {932, "SJIS-MS"}, | 296 | CP_ALIAS(936, "WINDOWS-936") \ |
| 297 | {932, "SJIS-OPEN"}, | 297 | \ |
| 298 | {932, "SJIS-WIN"}, | 298 | CP_ALIAS(950, "CP950") \ |
| 299 | {932, "WINDOWS-31J"}, | 299 | CP_ALIAS(950, "BIG5") \ |
| 300 | {932, "WINDOWS-932"}, | 300 | CP_ALIAS(950, "BIG5HKSCS") \ |
| 301 | {932, "CSWINDOWS31J"}, | 301 | CP_ALIAS(950, "BIG5-HKSCS") \ |
| 302 | 302 | \ | |
| 303 | {50221, "CP50221"}, | 303 | CP_ALIAS(949, "CP949") \ |
| 304 | {50221, "ISO-2022-JP"}, | 304 | CP_ALIAS(949, "UHC") \ |
| 305 | {50221, "ISO-2022-JP-MS"}, | 305 | CP_ALIAS(949, "EUC-KR") \ |
| 306 | {50221, "ISO2022-JP"}, | 306 | \ |
| 307 | {50221, "ISO2022-JP-MS"}, | 307 | CP_ALIAS(1361, "CP1361") \ |
| 308 | {50221, "MS50221"}, | 308 | CP_ALIAS(1361, "JOHAB") \ |
| 309 | {50221, "WINDOWS-50221"}, | 309 | \ |
| 310 | 310 | CP_ALIAS(437, "437") \ | |
| 311 | {936, "CP936"}, | 311 | CP_ALIAS(437, "CP437") \ |
| 312 | {936, "GBK"}, | 312 | CP_ALIAS(437, "IBM437") \ |
| 313 | {936, "MS936"}, | 313 | CP_ALIAS(437, "CSPC8CODEPAGE437") \ |
| 314 | {936, "WINDOWS-936"}, | 314 | \ |
| 315 | 315 | CP_ALIAS(737, "CP737") \ | |
| 316 | {950, "CP950"}, | 316 | \ |
| 317 | {950, "BIG5"}, | 317 | CP_ALIAS(775, "CP775") \ |
| 318 | {950, "BIG5HKSCS"}, | 318 | CP_ALIAS(775, "IBM775") \ |
| 319 | {950, "BIG5-HKSCS"}, | 319 | CP_ALIAS(775, "CSPC775BALTIC") \ |
| 320 | 320 | \ | |
| 321 | {949, "CP949"}, | 321 | CP_ALIAS(852, "852") \ |
| 322 | {949, "UHC"}, | 322 | CP_ALIAS(852, "CP852") \ |
| 323 | {949, "EUC-KR"}, | 323 | CP_ALIAS(852, "IBM852") \ |
| 324 | 324 | CP_ALIAS(852, "CSPCP852") \ | |
| 325 | {1361, "CP1361"}, | 325 | \ |
| 326 | {1361, "JOHAB"}, | 326 | /* !IsValidCodePage(853) */ \ |
| 327 | 327 | CP_ALIAS(853, "CP853") \ | |
| 328 | {437, "437"}, | 328 | \ |
| 329 | {437, "CP437"}, | 329 | CP_ALIAS(855, "855") \ |
| 330 | {437, "IBM437"}, | 330 | CP_ALIAS(855, "CP855") \ |
| 331 | {437, "CSPC8CODEPAGE437"}, | 331 | CP_ALIAS(855, "IBM855") \ |
| 332 | 332 | CP_ALIAS(855, "CSIBM855") \ | |
| 333 | {737, "CP737"}, | 333 | \ |
| 334 | 334 | CP_ALIAS(857, "857") \ | |
| 335 | {775, "CP775"}, | 335 | CP_ALIAS(857, "CP857") \ |
| 336 | {775, "IBM775"}, | 336 | CP_ALIAS(857, "IBM857") \ |
| 337 | {775, "CSPC775BALTIC"}, | 337 | CP_ALIAS(857, "CSIBM857") \ |
| 338 | 338 | \ | |
| 339 | {852, "852"}, | 339 | /* !IsValidCodePage(858) */ \ |
| 340 | {852, "CP852"}, | 340 | CP_ALIAS(858, "CP858") \ |
| 341 | {852, "IBM852"}, | 341 | \ |
| 342 | {852, "CSPCP852"}, | 342 | CP_ALIAS(860, "860") \ |
| 343 | 343 | CP_ALIAS(860, "CP860") \ | |
| 344 | /* !IsValidCodePage(853) */ | 344 | CP_ALIAS(860, "IBM860") \ |
| 345 | {853, "CP853"}, | 345 | CP_ALIAS(860, "CSIBM860") \ |
| 346 | 346 | \ | |
| 347 | {855, "855"}, | 347 | CP_ALIAS(861, "861") \ |
| 348 | {855, "CP855"}, | 348 | CP_ALIAS(861, "CP-IS") \ |
| 349 | {855, "IBM855"}, | 349 | CP_ALIAS(861, "CP861") \ |
| 350 | {855, "CSIBM855"}, | 350 | CP_ALIAS(861, "IBM861") \ |
| 351 | 351 | CP_ALIAS(861, "CSIBM861") \ | |
| 352 | {857, "857"}, | 352 | \ |
| 353 | {857, "CP857"}, | 353 | CP_ALIAS(863, "863") \ |
| 354 | {857, "IBM857"}, | 354 | CP_ALIAS(863, "CP863") \ |
| 355 | {857, "CSIBM857"}, | 355 | CP_ALIAS(863, "IBM863") \ |
| 356 | 356 | CP_ALIAS(863, "CSIBM863") \ | |
| 357 | /* !IsValidCodePage(858) */ | 357 | \ |
| 358 | {858, "CP858"}, | 358 | CP_ALIAS(864, "CP864") \ |
| 359 | 359 | CP_ALIAS(864, "IBM864") \ | |
| 360 | {860, "860"}, | 360 | CP_ALIAS(864, "CSIBM864") \ |
| 361 | {860, "CP860"}, | 361 | \ |
| 362 | {860, "IBM860"}, | 362 | CP_ALIAS(865, "865") \ |
| 363 | {860, "CSIBM860"}, | 363 | CP_ALIAS(865, "CP865") \ |
| 364 | 364 | CP_ALIAS(865, "IBM865") \ | |
| 365 | {861, "861"}, | 365 | CP_ALIAS(865, "CSIBM865") \ |
| 366 | {861, "CP-IS"}, | 366 | \ |
| 367 | {861, "CP861"}, | 367 | CP_ALIAS(869, "869") \ |
| 368 | {861, "IBM861"}, | 368 | CP_ALIAS(869, "CP-GR") \ |
| 369 | {861, "CSIBM861"}, | 369 | CP_ALIAS(869, "CP869") \ |
| 370 | 370 | CP_ALIAS(869, "IBM869") \ | |
| 371 | {863, "863"}, | 371 | CP_ALIAS(869, "CSIBM869") \ |
| 372 | {863, "CP863"}, | 372 | \ |
| 373 | {863, "IBM863"}, | 373 | /* !IsValidCodePage(1152) */ \ |
| 374 | {863, "CSIBM863"}, | 374 | CP_ALIAS(1125, "CP1125") \ |
| 375 | 375 | \ | |
| 376 | {864, "CP864"}, | 376 | /* \ |
| 377 | {864, "IBM864"}, | 377 | * Code Page Identifiers \ |
| 378 | {864, "CSIBM864"}, | 378 | * http://msdn2.microsoft.com/en-us/library/ms776446.aspx \ |
| 379 | 379 | */ \ | |
| 380 | {865, "865"}, | 380 | CP_ALIAS(37, "IBM037") /* IBM EBCDIC US-Canada */ \ |
| 381 | {865, "CP865"}, | 381 | CP_ALIAS(437, "IBM437") /* OEM United States */ \ |
| 382 | {865, "IBM865"}, | 382 | CP_ALIAS(500, "IBM500") /* IBM EBCDIC International */ \ |
| 383 | {865, "CSIBM865"}, | 383 | CP_ALIAS(708, "ASMO-708") /* Arabic (ASMO 708) */ \ |
| 384 | 384 | /* 709 Arabic (ASMO-449+, BCON V4) */ \ | |
| 385 | {869, "869"}, | 385 | /* 710 Arabic - Transparent Arabic */ \ |
| 386 | {869, "CP-GR"}, | 386 | CP_ALIAS(720, "DOS-720") /* Arabic (Transparent ASMO); Arabic (DOS) */ \ |
| 387 | {869, "CP869"}, | 387 | CP_ALIAS(737, "ibm737") /* OEM Greek (formerly 437G); Greek (DOS) */ \ |
| 388 | {869, "IBM869"}, | 388 | CP_ALIAS(775, "ibm775") /* OEM Baltic; Baltic (DOS) */ \ |
| 389 | {869, "CSIBM869"}, | 389 | CP_ALIAS(850, "ibm850") /* OEM Multilingual Latin 1; Western European (DOS) */ \ |
| 390 | 390 | CP_ALIAS(852, "ibm852") /* OEM Latin 2; Central European (DOS) */ \ | |
| 391 | /* !IsValidCodePage(1152) */ | 391 | CP_ALIAS(855, "IBM855") /* OEM Cyrillic (primarily Russian) */ \ |
| 392 | {1125, "CP1125"}, | 392 | CP_ALIAS(857, "ibm857") /* OEM Turkish; Turkish (DOS) */ \ |
| 393 | 393 | CP_ALIAS(858, "IBM00858") /* OEM Multilingual Latin 1 + Euro symbol */ \ | |
| 394 | /* | 394 | CP_ALIAS(860, "IBM860") /* OEM Portuguese; Portuguese (DOS) */ \ |
| 395 | * Code Page Identifiers | 395 | CP_ALIAS(861, "ibm861") /* OEM Icelandic; Icelandic (DOS) */ \ |
| 396 | * http://msdn2.microsoft.com/en-us/library/ms776446.aspx | 396 | CP_ALIAS(862, "DOS-862") /* OEM Hebrew; Hebrew (DOS) */ \ |
| 397 | */ | 397 | CP_ALIAS(863, "IBM863") /* OEM French Canadian; French Canadian (DOS) */ \ |
| 398 | {37, "IBM037"}, /* IBM EBCDIC US-Canada */ | 398 | CP_ALIAS(864, "IBM864") /* OEM Arabic; Arabic (864) */ \ |
| 399 | {437, "IBM437"}, /* OEM United States */ | 399 | CP_ALIAS(865, "IBM865") /* OEM Nordic; Nordic (DOS) */ \ |
| 400 | {500, "IBM500"}, /* IBM EBCDIC International */ | 400 | CP_ALIAS(866, "cp866") /* OEM Russian; Cyrillic (DOS) */ \ |
| 401 | {708, "ASMO-708"}, /* Arabic (ASMO 708) */ | 401 | CP_ALIAS(869, "ibm869") /* OEM Modern Greek; Greek, Modern (DOS) */ \ |
| 402 | /* 709 Arabic (ASMO-449+, BCON V4) */ | 402 | CP_ALIAS(870, "IBM870") /* IBM EBCDIC Multilingual/ROECE (Latin 2); IBM EBCDIC Multilingual Latin 2 */ \ |
| 403 | /* 710 Arabic - Transparent Arabic */ | 403 | CP_ALIAS(874, "windows-874") /* ANSI/OEM Thai (same as 28605, ISO 8859-15); Thai (Windows) */ \ |
| 404 | {720, "DOS-720"}, /* Arabic (Transparent ASMO); Arabic (DOS) */ | 404 | CP_ALIAS(875, "cp875") /* IBM EBCDIC Greek Modern */ \ |
| 405 | {737, "ibm737"}, /* OEM Greek (formerly 437G); Greek (DOS) */ | 405 | CP_ALIAS(932, "shift_jis") /* ANSI/OEM Japanese; Japanese (Shift-JIS) */ \ |
| 406 | {775, "ibm775"}, /* OEM Baltic; Baltic (DOS) */ | 406 | CP_ALIAS(932, "shift-jis") /* alternative name for it */ \ |
| 407 | {850, "ibm850"}, /* OEM Multilingual Latin 1; Western European (DOS) */ | 407 | CP_ALIAS(936, "gb2312") /* ANSI/OEM Simplified Chinese (PRC, Singapore); Chinese Simplified (GB2312) */ \ |
| 408 | {852, "ibm852"}, /* OEM Latin 2; Central European (DOS) */ | 408 | CP_ALIAS(949, "ks_c_5601-1987") /* ANSI/OEM Korean (Unified Hangul Code) */ \ |
| 409 | {855, "IBM855"}, /* OEM Cyrillic (primarily Russian) */ | 409 | CP_ALIAS(950, "big5") /* ANSI/OEM Traditional Chinese (Taiwan; Hong Kong SAR, PRC); Chinese Traditional (Big5) */ \ |
| 410 | {857, "ibm857"}, /* OEM Turkish; Turkish (DOS) */ | 410 | CP_ALIAS(950, "big5hkscs") /* ANSI/OEM Traditional Chinese (Hong Kong SAR); Chinese Traditional (Big5-HKSCS) */ \ |
| 411 | {858, "IBM00858"}, /* OEM Multilingual Latin 1 + Euro symbol */ | 411 | CP_ALIAS(950, "big5-hkscs") /* alternative name for it */ \ |
| 412 | {860, "IBM860"}, /* OEM Portuguese; Portuguese (DOS) */ | 412 | CP_ALIAS(1026, "IBM1026") /* IBM EBCDIC Turkish (Latin 5) */ \ |
| 413 | {861, "ibm861"}, /* OEM Icelandic; Icelandic (DOS) */ | 413 | CP_ALIAS(1047, "IBM01047") /* IBM EBCDIC Latin 1/Open System */ \ |
| 414 | {862, "DOS-862"}, /* OEM Hebrew; Hebrew (DOS) */ | 414 | CP_ALIAS(1140, "IBM01140") /* IBM EBCDIC US-Canada (037 + Euro symbol); IBM EBCDIC (US-Canada-Euro) */ \ |
| 415 | {863, "IBM863"}, /* OEM French Canadian; French Canadian (DOS) */ | 415 | CP_ALIAS(1141, "IBM01141") /* IBM EBCDIC Germany (20273 + Euro symbol); IBM EBCDIC (Germany-Euro) */ \ |
| 416 | {864, "IBM864"}, /* OEM Arabic; Arabic (864) */ | 416 | CP_ALIAS(1142, "IBM01142") /* IBM EBCDIC Denmark-Norway (20277 + Euro symbol); IBM EBCDIC (Denmark-Norway-Euro) */ \ |
| 417 | {865, "IBM865"}, /* OEM Nordic; Nordic (DOS) */ | 417 | CP_ALIAS(1143, "IBM01143") /* IBM EBCDIC Finland-Sweden (20278 + Euro symbol); IBM EBCDIC (Finland-Sweden-Euro) */ \ |
| 418 | {866, "cp866"}, /* OEM Russian; Cyrillic (DOS) */ | 418 | CP_ALIAS(1144, "IBM01144") /* IBM EBCDIC Italy (20280 + Euro symbol); IBM EBCDIC (Italy-Euro) */ \ |
| 419 | {869, "ibm869"}, /* OEM Modern Greek; Greek, Modern (DOS) */ | 419 | CP_ALIAS(1145, "IBM01145") /* IBM EBCDIC Latin America-Spain (20284 + Euro symbol); IBM EBCDIC (Spain-Euro) */ \ |
| 420 | {870, "IBM870"}, /* IBM EBCDIC Multilingual/ROECE (Latin 2); IBM EBCDIC Multilingual Latin 2 */ | 420 | CP_ALIAS(1146, "IBM01146") /* IBM EBCDIC United Kingdom (20285 + Euro symbol); IBM EBCDIC (UK-Euro) */ \ |
| 421 | {874, "windows-874"}, /* ANSI/OEM Thai (same as 28605, ISO 8859-15); Thai (Windows) */ | 421 | CP_ALIAS(1147, "IBM01147") /* IBM EBCDIC France (20297 + Euro symbol); IBM EBCDIC (France-Euro) */ \ |
| 422 | {875, "cp875"}, /* IBM EBCDIC Greek Modern */ | 422 | CP_ALIAS(1148, "IBM01148") /* IBM EBCDIC International (500 + Euro symbol); IBM EBCDIC (International-Euro) */ \ |
| 423 | {932, "shift_jis"}, /* ANSI/OEM Japanese; Japanese (Shift-JIS) */ | 423 | CP_ALIAS(1149, "IBM01149") /* IBM EBCDIC Icelandic (20871 + Euro symbol); IBM EBCDIC (Icelandic-Euro) */ \ |
| 424 | {932, "shift-jis"}, /* alternative name for it */ | 424 | CP_ALIAS(1250, "windows-1250") /* ANSI Central European; Central European (Windows) */ \ |
| 425 | {936, "gb2312"}, /* ANSI/OEM Simplified Chinese (PRC, Singapore); Chinese Simplified (GB2312) */ | 425 | CP_ALIAS(1251, "windows-1251") /* ANSI Cyrillic; Cyrillic (Windows) */ \ |
| 426 | {949, "ks_c_5601-1987"}, /* ANSI/OEM Korean (Unified Hangul Code) */ | 426 | CP_ALIAS(1252, "windows-1252") /* ANSI Latin 1; Western European (Windows) */ \ |
| 427 | {950, "big5"}, /* ANSI/OEM Traditional Chinese (Taiwan; Hong Kong SAR, PRC); Chinese Traditional (Big5) */ | 427 | CP_ALIAS(1253, "windows-1253") /* ANSI Greek; Greek (Windows) */ \ |
| 428 | {950, "big5hkscs"}, /* ANSI/OEM Traditional Chinese (Hong Kong SAR); Chinese Traditional (Big5-HKSCS) */ | 428 | CP_ALIAS(1254, "windows-1254") /* ANSI Turkish; Turkish (Windows) */ \ |
| 429 | {950, "big5-hkscs"}, /* alternative name for it */ | 429 | CP_ALIAS(1255, "windows-1255") /* ANSI Hebrew; Hebrew (Windows) */ \ |
| 430 | {1026, "IBM1026"}, /* IBM EBCDIC Turkish (Latin 5) */ | 430 | CP_ALIAS(1256, "windows-1256") /* ANSI Arabic; Arabic (Windows) */ \ |
| 431 | {1047, "IBM01047"}, /* IBM EBCDIC Latin 1/Open System */ | 431 | CP_ALIAS(1257, "windows-1257") /* ANSI Baltic; Baltic (Windows) */ \ |
| 432 | {1140, "IBM01140"}, /* IBM EBCDIC US-Canada (037 + Euro symbol); IBM EBCDIC (US-Canada-Euro) */ | 432 | CP_ALIAS(1258, "windows-1258") /* ANSI/OEM Vietnamese; Vietnamese (Windows) */ \ |
| 433 | {1141, "IBM01141"}, /* IBM EBCDIC Germany (20273 + Euro symbol); IBM EBCDIC (Germany-Euro) */ | 433 | CP_ALIAS(1361, "Johab") /* Korean (Johab) */ \ |
| 434 | {1142, "IBM01142"}, /* IBM EBCDIC Denmark-Norway (20277 + Euro symbol); IBM EBCDIC (Denmark-Norway-Euro) */ | 434 | CP_ALIAS(10000, "macintosh") /* MAC Roman; Western European (Mac) */ \ |
| 435 | {1143, "IBM01143"}, /* IBM EBCDIC Finland-Sweden (20278 + Euro symbol); IBM EBCDIC (Finland-Sweden-Euro) */ | 435 | CP_ALIAS(10001, "x-mac-japanese") /* Japanese (Mac) */ \ |
| 436 | {1144, "IBM01144"}, /* IBM EBCDIC Italy (20280 + Euro symbol); IBM EBCDIC (Italy-Euro) */ | 436 | CP_ALIAS(10002, "x-mac-chinesetrad") /* MAC Traditional Chinese (Big5); Chinese Traditional (Mac) */ \ |
| 437 | {1145, "IBM01145"}, /* IBM EBCDIC Latin America-Spain (20284 + Euro symbol); IBM EBCDIC (Spain-Euro) */ | 437 | CP_ALIAS(10003, "x-mac-korean") /* Korean (Mac) */ \ |
| 438 | {1146, "IBM01146"}, /* IBM EBCDIC United Kingdom (20285 + Euro symbol); IBM EBCDIC (UK-Euro) */ | 438 | CP_ALIAS(10004, "x-mac-arabic") /* Arabic (Mac) */ \ |
| 439 | {1147, "IBM01147"}, /* IBM EBCDIC France (20297 + Euro symbol); IBM EBCDIC (France-Euro) */ | 439 | CP_ALIAS(10005, "x-mac-hebrew") /* Hebrew (Mac) */ \ |
| 440 | {1148, "IBM01148"}, /* IBM EBCDIC International (500 + Euro symbol); IBM EBCDIC (International-Euro) */ | 440 | CP_ALIAS(10006, "x-mac-greek") /* Greek (Mac) */ \ |
| 441 | {1149, "IBM01149"}, /* IBM EBCDIC Icelandic (20871 + Euro symbol); IBM EBCDIC (Icelandic-Euro) */ | 441 | CP_ALIAS(10007, "x-mac-cyrillic") /* Cyrillic (Mac) */ \ |
| 442 | {1250, "windows-1250"}, /* ANSI Central European; Central European (Windows) */ | 442 | CP_ALIAS(10008, "x-mac-chinesesimp") /* MAC Simplified Chinese (GB 2312); Chinese Simplified (Mac) */ \ |
| 443 | {1251, "windows-1251"}, /* ANSI Cyrillic; Cyrillic (Windows) */ | 443 | CP_ALIAS(10010, "x-mac-romanian") /* Romanian (Mac) */ \ |
| 444 | {1252, "windows-1252"}, /* ANSI Latin 1; Western European (Windows) */ | 444 | CP_ALIAS(10017, "x-mac-ukrainian") /* Ukrainian (Mac) */ \ |
| 445 | {1253, "windows-1253"}, /* ANSI Greek; Greek (Windows) */ | 445 | CP_ALIAS(10021, "x-mac-thai") /* Thai (Mac) */ \ |
| 446 | {1254, "windows-1254"}, /* ANSI Turkish; Turkish (Windows) */ | 446 | CP_ALIAS(10029, "x-mac-ce") /* MAC Latin 2; Central European (Mac) */ \ |
| 447 | {1255, "windows-1255"}, /* ANSI Hebrew; Hebrew (Windows) */ | 447 | CP_ALIAS(10079, "x-mac-icelandic") /* Icelandic (Mac) */ \ |
| 448 | {1256, "windows-1256"}, /* ANSI Arabic; Arabic (Windows) */ | 448 | CP_ALIAS(10081, "x-mac-turkish") /* Turkish (Mac) */ \ |
| 449 | {1257, "windows-1257"}, /* ANSI Baltic; Baltic (Windows) */ | 449 | CP_ALIAS(10082, "x-mac-croatian") /* Croatian (Mac) */ \ |
| 450 | {1258, "windows-1258"}, /* ANSI/OEM Vietnamese; Vietnamese (Windows) */ | 450 | CP_ALIAS(20000, "x-Chinese_CNS") /* CNS Taiwan; Chinese Traditional (CNS) */ \ |
| 451 | {1361, "Johab"}, /* Korean (Johab) */ | 451 | CP_ALIAS(20001, "x-cp20001") /* TCA Taiwan */ \ |
| 452 | {10000, "macintosh"}, /* MAC Roman; Western European (Mac) */ | 452 | CP_ALIAS(20002, "x_Chinese-Eten") /* Eten Taiwan; Chinese Traditional (Eten) */ \ |
| 453 | {10001, "x-mac-japanese"}, /* Japanese (Mac) */ | 453 | CP_ALIAS(20003, "x-cp20003") /* IBM5550 Taiwan */ \ |
| 454 | {10002, "x-mac-chinesetrad"}, /* MAC Traditional Chinese (Big5); Chinese Traditional (Mac) */ | 454 | CP_ALIAS(20004, "x-cp20004") /* TeleText Taiwan */ \ |
| 455 | {10003, "x-mac-korean"}, /* Korean (Mac) */ | 455 | CP_ALIAS(20005, "x-cp20005") /* Wang Taiwan */ \ |
| 456 | {10004, "x-mac-arabic"}, /* Arabic (Mac) */ | 456 | CP_ALIAS(20105, "x-IA5") /* IA5 (IRV International Alphabet No. 5, 7-bit); Western European (IA5) */ \ |
| 457 | {10005, "x-mac-hebrew"}, /* Hebrew (Mac) */ | 457 | CP_ALIAS(20106, "x-IA5-German") /* IA5 German (7-bit) */ \ |
| 458 | {10006, "x-mac-greek"}, /* Greek (Mac) */ | 458 | CP_ALIAS(20107, "x-IA5-Swedish") /* IA5 Swedish (7-bit) */ \ |
| 459 | {10007, "x-mac-cyrillic"}, /* Cyrillic (Mac) */ | 459 | CP_ALIAS(20108, "x-IA5-Norwegian") /* IA5 Norwegian (7-bit) */ \ |
| 460 | {10008, "x-mac-chinesesimp"}, /* MAC Simplified Chinese (GB 2312); Chinese Simplified (Mac) */ | 460 | CP_ALIAS(20127, "us-ascii") /* US-ASCII (7-bit) */ \ |
| 461 | {10010, "x-mac-romanian"}, /* Romanian (Mac) */ | 461 | CP_ALIAS(20261, "x-cp20261") /* T.61 */ \ |
| 462 | {10017, "x-mac-ukrainian"}, /* Ukrainian (Mac) */ | 462 | CP_ALIAS(20269, "x-cp20269") /* ISO 6937 Non-Spacing Accent */ \ |
| 463 | {10021, "x-mac-thai"}, /* Thai (Mac) */ | 463 | CP_ALIAS(20273, "IBM273") /* IBM EBCDIC Germany */ \ |
| 464 | {10029, "x-mac-ce"}, /* MAC Latin 2; Central European (Mac) */ | 464 | CP_ALIAS(20277, "IBM277") /* IBM EBCDIC Denmark-Norway */ \ |
| 465 | {10079, "x-mac-icelandic"}, /* Icelandic (Mac) */ | 465 | CP_ALIAS(20278, "IBM278") /* IBM EBCDIC Finland-Sweden */ \ |
| 466 | {10081, "x-mac-turkish"}, /* Turkish (Mac) */ | 466 | CP_ALIAS(20280, "IBM280") /* IBM EBCDIC Italy */ \ |
| 467 | {10082, "x-mac-croatian"}, /* Croatian (Mac) */ | 467 | CP_ALIAS(20284, "IBM284") /* IBM EBCDIC Latin America-Spain */ \ |
| 468 | {20000, "x-Chinese_CNS"}, /* CNS Taiwan; Chinese Traditional (CNS) */ | 468 | CP_ALIAS(20285, "IBM285") /* IBM EBCDIC United Kingdom */ \ |
| 469 | {20001, "x-cp20001"}, /* TCA Taiwan */ | 469 | CP_ALIAS(20290, "IBM290") /* IBM EBCDIC Japanese Katakana Extended */ \ |
| 470 | {20002, "x_Chinese-Eten"}, /* Eten Taiwan; Chinese Traditional (Eten) */ | 470 | CP_ALIAS(20297, "IBM297") /* IBM EBCDIC France */ \ |
| 471 | {20003, "x-cp20003"}, /* IBM5550 Taiwan */ | 471 | CP_ALIAS(20420, "IBM420") /* IBM EBCDIC Arabic */ \ |
| 472 | {20004, "x-cp20004"}, /* TeleText Taiwan */ | 472 | CP_ALIAS(20423, "IBM423") /* IBM EBCDIC Greek */ \ |
| 473 | {20005, "x-cp20005"}, /* Wang Taiwan */ | 473 | CP_ALIAS(20424, "IBM424") /* IBM EBCDIC Hebrew */ \ |
| 474 | {20105, "x-IA5"}, /* IA5 (IRV International Alphabet No. 5, 7-bit); Western European (IA5) */ | 474 | CP_ALIAS(20833, "x-EBCDIC-KoreanExtended") /* IBM EBCDIC Korean Extended */ \ |
| 475 | {20106, "x-IA5-German"}, /* IA5 German (7-bit) */ | 475 | CP_ALIAS(20838, "IBM-Thai") /* IBM EBCDIC Thai */ \ |
| 476 | {20107, "x-IA5-Swedish"}, /* IA5 Swedish (7-bit) */ | 476 | CP_ALIAS(20866, "koi8-r") /* Russian (KOI8-R); Cyrillic (KOI8-R) */ \ |
| 477 | {20108, "x-IA5-Norwegian"}, /* IA5 Norwegian (7-bit) */ | 477 | CP_ALIAS(20871, "IBM871") /* IBM EBCDIC Icelandic */ \ |
| 478 | {20127, "us-ascii"}, /* US-ASCII (7-bit) */ | 478 | CP_ALIAS(20880, "IBM880") /* IBM EBCDIC Cyrillic Russian */ \ |
| 479 | {20261, "x-cp20261"}, /* T.61 */ | 479 | CP_ALIAS(20905, "IBM905") /* IBM EBCDIC Turkish */ \ |
| 480 | {20269, "x-cp20269"}, /* ISO 6937 Non-Spacing Accent */ | 480 | CP_ALIAS(20924, "IBM00924") /* IBM EBCDIC Latin 1/Open System (1047 + Euro symbol) */ \ |
| 481 | {20273, "IBM273"}, /* IBM EBCDIC Germany */ | 481 | CP_ALIAS(20932, "EUC-JP") /* Japanese (JIS 0208-1990 and 0121-1990) */ \ |
| 482 | {20277, "IBM277"}, /* IBM EBCDIC Denmark-Norway */ | 482 | CP_ALIAS(20936, "x-cp20936") /* Simplified Chinese (GB2312); Chinese Simplified (GB2312-80) */ \ |
| 483 | {20278, "IBM278"}, /* IBM EBCDIC Finland-Sweden */ | 483 | CP_ALIAS(20949, "x-cp20949") /* Korean Wansung */ \ |
| 484 | {20280, "IBM280"}, /* IBM EBCDIC Italy */ | 484 | CP_ALIAS(21025, "cp1025") /* IBM EBCDIC Cyrillic Serbian-Bulgarian */ \ |
| 485 | {20284, "IBM284"}, /* IBM EBCDIC Latin America-Spain */ | 485 | /* 21027 (deprecated) */ \ |
| 486 | {20285, "IBM285"}, /* IBM EBCDIC United Kingdom */ | 486 | CP_ALIAS(21866, "koi8-u") /* Ukrainian (KOI8-U); Cyrillic (KOI8-U) */ \ |
| 487 | {20290, "IBM290"}, /* IBM EBCDIC Japanese Katakana Extended */ | 487 | CP_ALIAS(28591, "iso-8859-1") /* ISO 8859-1 Latin 1; Western European (ISO) */ \ |
| 488 | {20297, "IBM297"}, /* IBM EBCDIC France */ | 488 | CP_ALIAS(28591, "iso8859-1") /* ISO 8859-1 Latin 1; Western European (ISO) */ \ |
| 489 | {20420, "IBM420"}, /* IBM EBCDIC Arabic */ | 489 | CP_ALIAS(28591, "iso_8859-1") \ |
| 490 | {20423, "IBM423"}, /* IBM EBCDIC Greek */ | 490 | CP_ALIAS(28591, "iso_8859_1") \ |
| 491 | {20424, "IBM424"}, /* IBM EBCDIC Hebrew */ | 491 | CP_ALIAS(28592, "iso-8859-2") /* ISO 8859-2 Central European; Central European (ISO) */ \ |
| 492 | {20833, "x-EBCDIC-KoreanExtended"}, /* IBM EBCDIC Korean Extended */ | 492 | CP_ALIAS(28592, "iso8859-2") /* ISO 8859-2 Central European; Central European (ISO) */ \ |
| 493 | {20838, "IBM-Thai"}, /* IBM EBCDIC Thai */ | 493 | CP_ALIAS(28592, "iso_8859-2") \ |
| 494 | {20866, "koi8-r"}, /* Russian (KOI8-R); Cyrillic (KOI8-R) */ | 494 | CP_ALIAS(28592, "iso_8859_2") \ |
| 495 | {20871, "IBM871"}, /* IBM EBCDIC Icelandic */ | 495 | CP_ALIAS(28593, "iso-8859-3") /* ISO 8859-3 Latin 3 */ \ |
| 496 | {20880, "IBM880"}, /* IBM EBCDIC Cyrillic Russian */ | 496 | CP_ALIAS(28593, "iso8859-3") /* ISO 8859-3 Latin 3 */ \ |
| 497 | {20905, "IBM905"}, /* IBM EBCDIC Turkish */ | 497 | CP_ALIAS(28593, "iso_8859-3") \ |
| 498 | {20924, "IBM00924"}, /* IBM EBCDIC Latin 1/Open System (1047 + Euro symbol) */ | 498 | CP_ALIAS(28593, "iso_8859_3") \ |
| 499 | {20932, "EUC-JP"}, /* Japanese (JIS 0208-1990 and 0121-1990) */ | 499 | CP_ALIAS(28594, "iso-8859-4") /* ISO 8859-4 Baltic */ \ |
| 500 | {20936, "x-cp20936"}, /* Simplified Chinese (GB2312); Chinese Simplified (GB2312-80) */ | 500 | CP_ALIAS(28594, "iso8859-4") /* ISO 8859-4 Baltic */ \ |
| 501 | {20949, "x-cp20949"}, /* Korean Wansung */ | 501 | CP_ALIAS(28594, "iso_8859-4") \ |
| 502 | {21025, "cp1025"}, /* IBM EBCDIC Cyrillic Serbian-Bulgarian */ | 502 | CP_ALIAS(28594, "iso_8859_4") \ |
| 503 | /* 21027 (deprecated) */ | 503 | CP_ALIAS(28595, "iso-8859-5") /* ISO 8859-5 Cyrillic */ \ |
| 504 | {21866, "koi8-u"}, /* Ukrainian (KOI8-U); Cyrillic (KOI8-U) */ | 504 | CP_ALIAS(28595, "iso8859-5") /* ISO 8859-5 Cyrillic */ \ |
| 505 | {28591, "iso-8859-1"}, /* ISO 8859-1 Latin 1; Western European (ISO) */ | 505 | CP_ALIAS(28595, "iso_8859-5") \ |
| 506 | {28591, "iso8859-1"}, /* ISO 8859-1 Latin 1; Western European (ISO) */ | 506 | CP_ALIAS(28595, "iso_8859_5") \ |
| 507 | {28591, "iso_8859-1"}, | 507 | CP_ALIAS(28596, "iso-8859-6") /* ISO 8859-6 Arabic */ \ |
| 508 | {28591, "iso_8859_1"}, | 508 | CP_ALIAS(28596, "iso8859-6") /* ISO 8859-6 Arabic */ \ |
| 509 | {28592, "iso-8859-2"}, /* ISO 8859-2 Central European; Central European (ISO) */ | 509 | CP_ALIAS(28596, "iso_8859-6") \ |
| 510 | {28592, "iso8859-2"}, /* ISO 8859-2 Central European; Central European (ISO) */ | 510 | CP_ALIAS(28596, "iso_8859_6") \ |
| 511 | {28592, "iso_8859-2"}, | 511 | CP_ALIAS(28597, "iso-8859-7") /* ISO 8859-7 Greek */ \ |
| 512 | {28592, "iso_8859_2"}, | 512 | CP_ALIAS(28597, "iso8859-7") /* ISO 8859-7 Greek */ \ |
| 513 | {28593, "iso-8859-3"}, /* ISO 8859-3 Latin 3 */ | 513 | CP_ALIAS(28597, "iso_8859-7") \ |
| 514 | {28593, "iso8859-3"}, /* ISO 8859-3 Latin 3 */ | 514 | CP_ALIAS(28597, "iso_8859_7") \ |
| 515 | {28593, "iso_8859-3"}, | 515 | CP_ALIAS(28598, "iso-8859-8") /* ISO 8859-8 Hebrew; Hebrew (ISO-Visual) */ \ |
| 516 | {28593, "iso_8859_3"}, | 516 | CP_ALIAS(28598, "iso8859-8") /* ISO 8859-8 Hebrew; Hebrew (ISO-Visual) */ \ |
| 517 | {28594, "iso-8859-4"}, /* ISO 8859-4 Baltic */ | 517 | CP_ALIAS(28598, "iso_8859-8") \ |
| 518 | {28594, "iso8859-4"}, /* ISO 8859-4 Baltic */ | 518 | CP_ALIAS(28598, "iso_8859_8") \ |
| 519 | {28594, "iso_8859-4"}, | 519 | CP_ALIAS(28599, "iso-8859-9") /* ISO 8859-9 Turkish */ \ |
| 520 | {28594, "iso_8859_4"}, | 520 | CP_ALIAS(28599, "iso8859-9") /* ISO 8859-9 Turkish */ \ |
| 521 | {28595, "iso-8859-5"}, /* ISO 8859-5 Cyrillic */ | 521 | CP_ALIAS(28599, "iso_8859-9") \ |
| 522 | {28595, "iso8859-5"}, /* ISO 8859-5 Cyrillic */ | 522 | CP_ALIAS(28599, "iso_8859_9") \ |
| 523 | {28595, "iso_8859-5"}, | 523 | CP_ALIAS(28603, "iso-8859-13") /* ISO 8859-13 Estonian */ \ |
| 524 | {28595, "iso_8859_5"}, | 524 | CP_ALIAS(28603, "iso8859-13") /* ISO 8859-13 Estonian */ \ |
| 525 | {28596, "iso-8859-6"}, /* ISO 8859-6 Arabic */ | 525 | CP_ALIAS(28603, "iso_8859-13") \ |
| 526 | {28596, "iso8859-6"}, /* ISO 8859-6 Arabic */ | 526 | CP_ALIAS(28603, "iso_8859_13") \ |
| 527 | {28596, "iso_8859-6"}, | 527 | CP_ALIAS(28605, "iso-8859-15") /* ISO 8859-15 Latin 9 */ \ |
| 528 | {28596, "iso_8859_6"}, | 528 | CP_ALIAS(28605, "iso8859-15") /* ISO 8859-15 Latin 9 */ \ |
| 529 | {28597, "iso-8859-7"}, /* ISO 8859-7 Greek */ | 529 | CP_ALIAS(28605, "iso_8859-15") \ |
| 530 | {28597, "iso8859-7"}, /* ISO 8859-7 Greek */ | 530 | CP_ALIAS(28605, "iso_8859_15") \ |
| 531 | {28597, "iso_8859-7"}, | 531 | CP_ALIAS(29001, "x-Europa") /* Europa 3 */ \ |
| 532 | {28597, "iso_8859_7"}, | 532 | CP_ALIAS(38598, "iso-8859-8-i") /* ISO 8859-8 Hebrew; Hebrew (ISO-Logical) */ \ |
| 533 | {28598, "iso-8859-8"}, /* ISO 8859-8 Hebrew; Hebrew (ISO-Visual) */ | 533 | CP_ALIAS(38598, "iso8859-8-i") /* ISO 8859-8 Hebrew; Hebrew (ISO-Logical) */ \ |
| 534 | {28598, "iso8859-8"}, /* ISO 8859-8 Hebrew; Hebrew (ISO-Visual) */ | 534 | CP_ALIAS(38598, "iso_8859-8-i") \ |
| 535 | {28598, "iso_8859-8"}, | 535 | CP_ALIAS(38598, "iso_8859_8-i") \ |
| 536 | {28598, "iso_8859_8"}, | 536 | CP_ALIAS(50220, "iso-2022-jp") /* ISO 2022 Japanese with no halfwidth Katakana; Japanese (JIS) */ \ |
| 537 | {28599, "iso-8859-9"}, /* ISO 8859-9 Turkish */ | 537 | CP_ALIAS(50221, "csISO2022JP") /* ISO 2022 Japanese with halfwidth Katakana; Japanese (JIS-Allow 1 byte Kana) */ \ |
| 538 | {28599, "iso8859-9"}, /* ISO 8859-9 Turkish */ | 538 | CP_ALIAS(50222, "iso-2022-jp") /* ISO 2022 Japanese JIS X 0201-1989; Japanese (JIS-Allow 1 byte Kana - SO/SI) */ \ |
| 539 | {28599, "iso_8859-9"}, | 539 | CP_ALIAS(50225, "iso-2022-kr") /* ISO 2022 Korean */ \ |
| 540 | {28599, "iso_8859_9"}, | 540 | CP_ALIAS(50225, "iso2022-kr") /* ISO 2022 Korean */ \ |
| 541 | {28603, "iso-8859-13"}, /* ISO 8859-13 Estonian */ | 541 | CP_ALIAS(50227, "x-cp50227") /* ISO 2022 Simplified Chinese; Chinese Simplified (ISO 2022) */ \ |
| 542 | {28603, "iso8859-13"}, /* ISO 8859-13 Estonian */ | 542 | /* 50229 ISO 2022 Traditional Chinese */ \ |
| 543 | {28603, "iso_8859-13"}, | 543 | /* 50930 EBCDIC Japanese (Katakana) Extended */ \ |
| 544 | {28603, "iso_8859_13"}, | 544 | /* 50931 EBCDIC US-Canada and Japanese */ \ |
| 545 | {28605, "iso-8859-15"}, /* ISO 8859-15 Latin 9 */ | 545 | /* 50933 EBCDIC Korean Extended and Korean */ \ |
| 546 | {28605, "iso8859-15"}, /* ISO 8859-15 Latin 9 */ | 546 | /* 50935 EBCDIC Simplified Chinese Extended and Simplified Chinese */ \ |
| 547 | {28605, "iso_8859-15"}, | 547 | /* 50936 EBCDIC Simplified Chinese */ \ |
| 548 | {28605, "iso_8859_15"}, | 548 | /* 50937 EBCDIC US-Canada and Traditional Chinese */ \ |
| 549 | {29001, "x-Europa"}, /* Europa 3 */ | 549 | /* 50939 EBCDIC Japanese (Latin) Extended and Japanese */ \ |
| 550 | {38598, "iso-8859-8-i"}, /* ISO 8859-8 Hebrew; Hebrew (ISO-Logical) */ | 550 | CP_ALIAS(51932, "euc-jp") /* EUC Japanese */ \ |
| 551 | {38598, "iso8859-8-i"}, /* ISO 8859-8 Hebrew; Hebrew (ISO-Logical) */ | 551 | CP_ALIAS(51936, "EUC-CN") /* EUC Simplified Chinese; Chinese Simplified (EUC) */ \ |
| 552 | {38598, "iso_8859-8-i"}, | 552 | CP_ALIAS(51949, "euc-kr") /* EUC Korean */ \ |
| 553 | {38598, "iso_8859_8-i"}, | 553 | /* 51950 EUC Traditional Chinese */ \ |
| 554 | {50220, "iso-2022-jp"}, /* ISO 2022 Japanese with no halfwidth Katakana; Japanese (JIS) */ | 554 | CP_ALIAS(52936, "hz-gb-2312") /* HZ-GB2312 Simplified Chinese; Chinese Simplified (HZ) */ \ |
| 555 | {50221, "csISO2022JP"}, /* ISO 2022 Japanese with halfwidth Katakana; Japanese (JIS-Allow 1 byte Kana) */ | 555 | CP_ALIAS(54936, "GB18030") /* Windows XP and later: GB18030 Simplified Chinese (4 byte); Chinese Simplified (GB18030) */ \ |
| 556 | {50222, "iso-2022-jp"}, /* ISO 2022 Japanese JIS X 0201-1989; Japanese (JIS-Allow 1 byte Kana - SO/SI) */ | 556 | CP_ALIAS(57002, "x-iscii-de") /* ISCII Devanagari */ \ |
| 557 | {50225, "iso-2022-kr"}, /* ISO 2022 Korean */ | 557 | CP_ALIAS(57003, "x-iscii-be") /* ISCII Bengali */ \ |
| 558 | {50225, "iso2022-kr"}, /* ISO 2022 Korean */ | 558 | CP_ALIAS(57004, "x-iscii-ta") /* ISCII Tamil */ \ |
| 559 | {50227, "x-cp50227"}, /* ISO 2022 Simplified Chinese; Chinese Simplified (ISO 2022) */ | 559 | CP_ALIAS(57005, "x-iscii-te") /* ISCII Telugu */ \ |
| 560 | /* 50229 ISO 2022 Traditional Chinese */ | 560 | CP_ALIAS(57006, "x-iscii-as") /* ISCII Assamese */ \ |
| 561 | /* 50930 EBCDIC Japanese (Katakana) Extended */ | 561 | CP_ALIAS(57007, "x-iscii-or") /* ISCII Oriya */ \ |
| 562 | /* 50931 EBCDIC US-Canada and Japanese */ | 562 | CP_ALIAS(57008, "x-iscii-ka") /* ISCII Kannada */ \ |
| 563 | /* 50933 EBCDIC Korean Extended and Korean */ | 563 | CP_ALIAS(57009, "x-iscii-ma") /* ISCII Malayalam */ \ |
| 564 | /* 50935 EBCDIC Simplified Chinese Extended and Simplified Chinese */ | 564 | CP_ALIAS(57010, "x-iscii-gu") /* ISCII Gujarati */ \ |
| 565 | /* 50936 EBCDIC Simplified Chinese */ | 565 | CP_ALIAS(57011, "x-iscii-pa") /* ISCII Punjabi */ |
| 566 | /* 50937 EBCDIC US-Canada and Traditional Chinese */ | 566 | |
| 567 | /* 50939 EBCDIC Japanese (Latin) Extended and Japanese */ | 567 | #define CP_ALIAS(codepage, alias) codepage, |
| 568 | {51932, "euc-jp"}, /* EUC Japanese */ | 568 | static const int cp_codepage[] = { |
| 569 | {51936, "EUC-CN"}, /* EUC Simplified Chinese; Chinese Simplified (EUC) */ | 569 | CP_ALIAS_LIST |
| 570 | {51949, "euc-kr"}, /* EUC Korean */ | ||
| 571 | /* 51950 EUC Traditional Chinese */ | ||
| 572 | {52936, "hz-gb-2312"}, /* HZ-GB2312 Simplified Chinese; Chinese Simplified (HZ) */ | ||
| 573 | {54936, "GB18030"}, /* Windows XP and later: GB18030 Simplified Chinese (4 byte); Chinese Simplified (GB18030) */ | ||
| 574 | {57002, "x-iscii-de"}, /* ISCII Devanagari */ | ||
| 575 | {57003, "x-iscii-be"}, /* ISCII Bengali */ | ||
| 576 | {57004, "x-iscii-ta"}, /* ISCII Tamil */ | ||
| 577 | {57005, "x-iscii-te"}, /* ISCII Telugu */ | ||
| 578 | {57006, "x-iscii-as"}, /* ISCII Assamese */ | ||
| 579 | {57007, "x-iscii-or"}, /* ISCII Oriya */ | ||
| 580 | {57008, "x-iscii-ka"}, /* ISCII Kannada */ | ||
| 581 | {57009, "x-iscii-ma"}, /* ISCII Malayalam */ | ||
| 582 | {57010, "x-iscii-gu"}, /* ISCII Gujarati */ | ||
| 583 | {57011, "x-iscii-pa"}, /* ISCII Punjabi */ | ||
| 584 | |||
| 585 | {0, NULL} | ||
| 586 | }; | 570 | }; |
| 571 | #undef CP_ALIAS | ||
| 572 | |||
| 573 | #define CP_ALIAS(codepage, alias) alias"\0" | ||
| 574 | static const char cp_alias[] ALIGN1 = | ||
| 575 | CP_ALIAS_LIST; | ||
| 576 | #undef CP_ALIAS | ||
| 587 | 577 | ||
| 588 | /* | 578 | /* |
| 589 | * SJIS SHIFTJIS table CP932 table | 579 | * SJIS SHIFTJIS table CP932 table |
| @@ -991,6 +981,7 @@ static int | |||
| 991 | name_to_codepage(const char *name) | 981 | name_to_codepage(const char *name) |
| 992 | { | 982 | { |
| 993 | int i; | 983 | int i; |
| 984 | const char *alias; | ||
| 994 | 985 | ||
| 995 | if (*name == '\0' || | 986 | if (*name == '\0' || |
| 996 | strcmp(name, "char") == 0) | 987 | strcmp(name, "char") == 0) |
| @@ -1004,9 +995,15 @@ name_to_codepage(const char *name) | |||
| 1004 | else if (_strnicmp(name, "xx", 2) == 0) | 995 | else if (_strnicmp(name, "xx", 2) == 0) |
| 1005 | return atoi(name + 2); /* XX123 for debug */ | 996 | return atoi(name + 2); /* XX123 for debug */ |
| 1006 | 997 | ||
| 1007 | for (i = 0; codepage_alias[i].name != NULL; ++i) | 998 | i = 0; |
| 1008 | if (_stricmp(name, codepage_alias[i].name) == 0) | 999 | alias = cp_alias; |
| 1009 | return codepage_alias[i].codepage; | 1000 | while (*alias) { |
| 1001 | if (_stricmp(alias, name) == 0) { | ||
| 1002 | return cp_codepage[i]; | ||
| 1003 | } | ||
| 1004 | alias += strlen(alias) + 1; | ||
| 1005 | ++i; | ||
| 1006 | } | ||
| 1010 | return -1; | 1007 | return -1; |
| 1011 | } | 1008 | } |
| 1012 | 1009 | ||
| @@ -1791,12 +1788,16 @@ int iconv_main(int argc, char **argv) | |||
| 1791 | FILE *in = stdin; | 1788 | FILE *in = stdin; |
| 1792 | FILE *out = stdout; | 1789 | FILE *out = stdout; |
| 1793 | int ignore = 0; | 1790 | int ignore = 0; |
| 1791 | const char *alias; | ||
| 1794 | 1792 | ||
| 1795 | while ((i = getopt(argc, argv, "f:t:lco:")) != -1) { | 1793 | while ((i = getopt(argc, argv, "f:t:lco:")) != -1) { |
| 1796 | switch (i) { | 1794 | switch (i) { |
| 1797 | case 'l': | 1795 | case 'l': |
| 1798 | for (i = 0; codepage_alias[i].name != NULL; ++i) | 1796 | alias = cp_alias; |
| 1799 | printf("%s\n", codepage_alias[i].name); | 1797 | while (*alias) { |
| 1798 | printf("%s\n", alias); | ||
| 1799 | alias += strlen(alias) + 1; | ||
| 1800 | } | ||
| 1800 | return 0; | 1801 | return 0; |
| 1801 | 1802 | ||
| 1802 | case 'f': | 1803 | case 'f': |
