mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-07-01 11:32:48 -05:00
It's probably well past time for this: change PuTTY's default
character set configuration to UTF-8, on both Windows and Unix, and reorganise the dropdown lists in the Translation menu so that UTF-8 appears at the top (and Unix's odd "use font encoding" is relegated to the bottom of the list like the special-purpose oddity it is). [originally from svn r9843]
This commit is contained in:
@ -390,6 +390,8 @@ struct cp_list_item {
|
||||
};
|
||||
|
||||
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},
|
||||
@ -406,8 +408,6 @@ static const struct cp_list_item cp_list[] = {
|
||||
{"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},
|
||||
@ -1016,48 +1016,8 @@ int decode_codepage(char *cp_name)
|
||||
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++) {
|
||||
|
Reference in New Issue
Block a user