X-Git-Url: https://git.distorted.org.uk/~mdw/sgt/putty/blobdiff_plain/c5e9c988d0706d1abb7fab7b2d2b1514bc119584..684d367c45028e742c1f8751cbe1f2502426c308:/windlg.c diff --git a/windlg.c b/windlg.c index 69f91fb9..47a8690b 100644 --- a/windlg.c +++ b/windlg.c @@ -157,6 +157,7 @@ static void save_settings (char *section, int do_host) { wppi (sesskey, "NetHackKeypad", cfg.nethack_keypad); wppi (sesskey, "AltF4", cfg.alt_f4); wppi (sesskey, "AltSpace", cfg.alt_space); + wppi (sesskey, "LdiscTerm", cfg.ldisc_term); wppi (sesskey, "ScrollbackLines", cfg.savelines); wppi (sesskey, "DECOriginMode", cfg.dec_om); wppi (sesskey, "AutoWrapMode", cfg.wrap_mode); @@ -191,6 +192,7 @@ static void save_settings (char *section, int do_host) { wpps (sesskey, buf, buf2); } wppi (sesskey, "KoiWinXlat", cfg.xlat_enablekoiwin); + wppi (sesskey, "88592Xlat", cfg.xlat_88592w1250); wppi (sesskey, "CapsLockCyr", cfg.xlat_capslockcyr); RegCloseKey(sesskey); @@ -290,6 +292,7 @@ static void load_settings (char *section, int do_host) { gppi (sesskey, "NetHackKeypad", 0, &cfg.nethack_keypad); gppi (sesskey, "AltF4", 1, &cfg.alt_f4); gppi (sesskey, "AltSpace", 0, &cfg.alt_space); + gppi (sesskey, "LdiscTerm", 0, &cfg.ldisc_term); gppi (sesskey, "ScrollbackLines", 200, &cfg.savelines); gppi (sesskey, "DECOriginMode", 0, &cfg.dec_om); gppi (sesskey, "AutoWrapMode", 1, &cfg.wrap_mode); @@ -301,7 +304,7 @@ static void load_settings (char *section, int do_host) { gppi (sesskey, "FontIsBold", 0, &cfg.fontisbold); gppi (sesskey, "FontCharSet", ANSI_CHARSET, &cfg.fontcharset); gppi (sesskey, "FontHeight", 10, &cfg.fontheight); - gppi (sesskey, "FontVTMode", VT_POORMAN, &cfg.vtmode); + gppi (sesskey, "FontVTMode", VT_POORMAN, (int *)&cfg.vtmode); gppi (sesskey, "TryPalette", 0, &cfg.try_palette); gppi (sesskey, "BoldAsColour", 1, &cfg.bold_colour); for (i=0; i<22; i++) { @@ -313,10 +316,14 @@ static void load_settings (char *section, int do_host) { "85,255,255", "187,187,187", "255,255,255" }; char buf[20], buf2[30]; + int c0, c1, c2; sprintf(buf, "Colour%d", i); gpps (sesskey, buf, defaults[i], buf2, sizeof(buf2)); - sscanf(buf2, "%d,%d,%d", &cfg.colours[i][0], - &cfg.colours[i][1], &cfg.colours[i][2]); + if(sscanf(buf2, "%d,%d,%d", &c0, &c1, &c2) == 3) { + cfg.colours[i][0] = c0; + cfg.colours[i][1] = c1; + cfg.colours[i][2] = c2; + } } gppi (sesskey, "MouseIsXterm", 0, &cfg.mouse_is_xterm); for (i=0; i<256; i+=32) { @@ -343,6 +350,7 @@ static void load_settings (char *section, int do_host) { } } gppi (sesskey, "KoiWinXlat", 0, &cfg.xlat_enablekoiwin); + gppi (sesskey, "88592Xlat", 0, &cfg.xlat_88592w1250); gppi (sesskey, "CapsLockCyr", 0, &cfg.xlat_capslockcyr); RegCloseKey(sesskey); @@ -636,6 +644,7 @@ static int CALLBACK KeyboardProc (HWND hwnd, UINT msg, cfg.app_keypad ? IDC1_KPAPPLIC : IDC1_KPNORMAL); CheckDlgButton (hwnd, IDC1_ALTF4, cfg.alt_f4); CheckDlgButton (hwnd, IDC1_ALTSPACE, cfg.alt_space); + CheckDlgButton (hwnd, IDC1_LDISCTERM, cfg.ldisc_term); break; case WM_COMMAND: if (HIWORD(wParam) == BN_CLICKED || @@ -676,6 +685,11 @@ static int CALLBACK KeyboardProc (HWND hwnd, UINT msg, HIWORD(wParam) == BN_DOUBLECLICKED) cfg.alt_space = IsDlgButtonChecked (hwnd, IDC1_ALTSPACE); break; + case IDC1_LDISCTERM: + if (HIWORD(wParam) == BN_CLICKED || + HIWORD(wParam) == BN_DOUBLECLICKED) + cfg.ldisc_term = IsDlgButtonChecked (hwnd, IDC1_LDISCTERM); + break; } } return GeneralPanelProc (hwnd, msg, wParam, lParam); @@ -1112,7 +1126,7 @@ static int CALLBACK ColourProc (HWND hwnd, UINT msg, i = (i < 3 ? i*2 : i == 3 ? 5 : i*2-2); cc.lStructSize = sizeof(cc); cc.hwndOwner = hwnd; - cc.hInstance = hinst; + cc.hInstance = (HWND)hinst; cc.lpCustColors = custom; cc.rgbResult = RGB (cfg.colours[i][0], cfg.colours[i][1], cfg.colours[i][2]); @@ -1143,16 +1157,20 @@ static int CALLBACK LanguageProc (HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { switch (msg) { case WM_INITDIALOG: - CheckDlgButton (hwnd, IDC6_ENABLEKOIWINXLAT, cfg.xlat_enablekoiwin); + CheckRadioButton (hwnd, IDC6_NOXLAT, IDC6_88592WIN1250, + cfg.xlat_88592w1250 ? IDC6_88592WIN1250 : + cfg.xlat_enablekoiwin ? IDC6_KOI8WIN1251 : + IDC6_NOXLAT); CheckDlgButton (hwnd, IDC6_CAPSLOCKCYR, cfg.xlat_capslockcyr); case WM_COMMAND: switch (LOWORD(wParam)) { - case IDC6_ENABLEKOIWINXLAT: - if (HIWORD(wParam) == BN_CLICKED || - HIWORD(wParam) == BN_DOUBLECLICKED) { - cfg.xlat_enablekoiwin = - IsDlgButtonChecked (hwnd, IDC6_ENABLEKOIWINXLAT); - } + case IDC6_NOXLAT: + case IDC6_KOI8WIN1251: + case IDC6_88592WIN1250: + cfg.xlat_enablekoiwin = + IsDlgButtonChecked (hwnd, IDC6_KOI8WIN1251); + cfg.xlat_88592w1250 = + IsDlgButtonChecked (hwnd, IDC6_88592WIN1250); break; case IDC6_CAPSLOCKCYR: if (HIWORD(wParam) == BN_CLICKED ||