};
static const struct cp_list_item cp_list[] = {
+ {"UTF-8", CP_UTF8},
+
{"ISO-8859-1:1998 (Latin-1, West Europe)", 0, 96, iso_8859_1},
{"ISO-8859-2:1999 (Latin-2, East Europe)", 0, 96, iso_8859_2},
{"ISO-8859-3:1999 (Latin-3, South Europe)", 0, 96, iso_8859_3},
{"ISO-8859-15:1999 (Latin-9, \"euro\")", 0, 96, iso_8859_15},
{"ISO-8859-16:2001 (Latin-10, Balkan)", 0, 96, iso_8859_16},
- {"UTF-8", CP_UTF8},
-
{"KOI8-U", 0, 128, koi8_u},
{"KOI8-R", 20866},
{"HP-ROMAN8", 0, 96, roman8},
int codepage = -1;
CPINFO cpinfo;
- if (!*cp_name) {
- /*
- * Here we select a plausible default code page based on
- * the locale the user is in. We wish to select an ISO code
- * page or appropriate local default _rather_ than go with
- * the Win125* series, because it's more important to have
- * CSI and friends enabled by default than the ghastly
- * Windows extra quote characters, and because it's more
- * likely the user is connecting to a remote server that
- * does something Unixy or VMSy and hence standards-
- * compliant than that they're connecting back to a Windows
- * box using horrible nonstandard charsets.
- *
- * Accordingly, Robert de Bath suggests a method for
- * picking a default character set that runs as follows:
- * first call GetACP to get the system's ANSI code page
- * identifier, and translate as follows:
- *
- * 1250 -> ISO 8859-2
- * 1251 -> KOI8-U
- * 1252 -> ISO 8859-1
- * 1253 -> ISO 8859-7
- * 1254 -> ISO 8859-9
- * 1255 -> ISO 8859-8
- * 1256 -> ISO 8859-6
- * 1257 -> ISO 8859-13 (changed from 8859-4 on advice of a Lithuanian)
- *
- * and for anything else, choose direct-to-font.
- */
- int cp = GetACP();
- switch (cp) {
- case 1250: cp_name = "ISO-8859-2"; break;
- case 1251: cp_name = "KOI8-U"; break;
- case 1252: cp_name = "ISO-8859-1"; break;
- case 1253: cp_name = "ISO-8859-7"; break;
- case 1254: cp_name = "ISO-8859-9"; break;
- case 1255: cp_name = "ISO-8859-8"; break;
- case 1256: cp_name = "ISO-8859-6"; break;
- case 1257: cp_name = "ISO-8859-13"; break;
- /* default: leave it blank, which will select -1, direct->font */
- }
- }
+ if (!*cp_name)
+ return CP_UTF8; /* default */
if (cp_name && *cp_name)
for (cpi = cp_list; cpi->name; cpi++) {