X-Git-Url: https://git.distorted.org.uk/u/mdw/putty/blobdiff_plain/ce2832135394f17cf34a9ca00db3c7394b591d46..c85623f918b8a6c639afc15604414f9b113bb20d:/settings.c diff --git a/settings.c b/settings.c index 0c642f50..ed9007da 100644 --- a/settings.c +++ b/settings.c @@ -20,16 +20,26 @@ static const struct keyval ciphernames[] = { { "des", CIPHER_DES } }; -static void gpps(void *handle, char *name, char *def, char *val, int len) +static void gpps(void *handle, const char *name, const char *def, + char *val, int len) { if (!read_setting_s(handle, name, val, len)) { - strncpy(val, def, len); + char *pdef; + + pdef = platform_default_s(name); + if (pdef) { + strncpy(val, pdef, len); + } else { + strncpy(val, def, len); + } + val[len - 1] = '\0'; } } static void gppi(void *handle, char *name, int def, int *i) { + def = platform_default_i(name, def); *i = read_setting_i(handle, name, def); } @@ -283,6 +293,7 @@ void save_settings(char *section, int do_host, Config * cfg) write_setting_i(sesskey, "BlinkText", cfg->blinktext); write_setting_i(sesskey, "X11Forward", cfg->x11_forward); write_setting_s(sesskey, "X11Display", cfg->x11_display); + write_setting_i(sesskey, "X11AuthType", cfg->x11_auth); write_setting_i(sesskey, "LocalPortAcceptAll", cfg->lport_acceptall); write_setting_i(sesskey, "RemotePortAcceptAll", cfg->rport_acceptall); { @@ -367,13 +378,7 @@ void load_open_settings(void *sesskey, int do_host, Config *cfg) * single command in its own pterm), but I don't think it's a * sane default, unfortunately. */ - gppi(sesskey, "CloseOnExit", -#ifdef _WINDOWS - COE_NORMAL, -#else - COE_ALWAYS, -#endif - &cfg->close_on_exit); + gppi(sesskey, "CloseOnExit", COE_NORMAL, &cfg->close_on_exit); gppi(sesskey, "WarnOnClose", 1, &cfg->warn_on_close); { /* This is two values for backward compatibility with 0.50/0.51 */ @@ -492,22 +497,10 @@ void load_open_settings(void *sesskey, int do_host, Config *cfg) gpps(sesskey, "WinTitle", "", cfg->wintitle, sizeof(cfg->wintitle)); gppi(sesskey, "TermWidth", 80, &cfg->width); gppi(sesskey, "TermHeight", 24, &cfg->height); -#ifdef _WINDOWS - gpps(sesskey, "Font", "Courier New", cfg->font, sizeof(cfg->font)); -#elif defined(macintosh) - gpps(sesskey, "Font", "Monaco", cfg->font, sizeof(cfg->font)); -#else - gpps(sesskey, "Font", "fixed", cfg->font, sizeof(cfg->font)); -#endif + gpps(sesskey, "Font", "XXX", cfg->font, sizeof(cfg->font)); gppi(sesskey, "FontIsBold", 0, &cfg->fontisbold); -#ifdef _WINDOWS - gppi(sesskey, "FontCharSet", ANSI_CHARSET, &cfg->fontcharset); -#endif -#ifdef macintosh - gppi(sesskey, "FontHeight", 9, &cfg->fontheight); -#else + gppi(sesskey, "FontCharSet", 0, &cfg->fontcharset); gppi(sesskey, "FontHeight", 10, &cfg->fontheight); -#endif #ifdef _WINDOWS if (cfg->fontheight < 0) { int oldh, newh; @@ -526,7 +519,7 @@ void load_open_settings(void *sesskey, int do_host, Config *cfg) gppi(sesskey, "TryPalette", 0, &cfg->try_palette); gppi(sesskey, "BoldAsColour", 1, &cfg->bold_colour); for (i = 0; i < 22; i++) { - static char *defaults[] = { + static const char *const defaults[] = { "187,187,187", "255,255,255", "0,0,0", "85,85,85", "0,0,0", "0,255,0", "0,0,0", "85,85,85", "187,0,0", "255,85,85", "0,187,0", "85,255,85", "187,187,0", "255,255,85", "0,0,187", @@ -543,22 +536,13 @@ void load_open_settings(void *sesskey, int do_host, Config *cfg) cfg->colours[i][2] = c2; } } -#ifndef _WINDOWS - /* Non-raw cut and paste of line-drawing chars works badly on the - * current Unix stub implementation of the Unicode functions. - * So I'm going to temporarily set the default to raw mode so - * that the failure mode isn't quite so drastically horrid. - * When Unicode comes in, this can all be put right. */ - gppi(sesskey, "RawCNP", 1, &cfg->rawcnp); -#else gppi(sesskey, "RawCNP", 0, &cfg->rawcnp); -#endif gppi(sesskey, "PasteRTF", 0, &cfg->rtf_paste); gppi(sesskey, "MouseIsXterm", 0, &cfg->mouse_is_xterm); gppi(sesskey, "RectSelect", 0, &cfg->rect_select); gppi(sesskey, "MouseOverride", 1, &cfg->mouse_override); for (i = 0; i < 256; i += 32) { - static char *defaults[] = { + static const char *const defaults[] = { "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", "0,1,2,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1", "1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,2", @@ -600,6 +584,7 @@ void load_open_settings(void *sesskey, int do_host, Config *cfg) gppi(sesskey, "X11Forward", 0, &cfg->x11_forward); gpps(sesskey, "X11Display", "localhost:0", cfg->x11_display, sizeof(cfg->x11_display)); + gppi(sesskey, "X11AuthType", X11_MIT, &cfg->x11_auth); gppi(sesskey, "LocalPortAcceptAll", 0, &cfg->lport_acceptall); gppi(sesskey, "RemotePortAcceptAll", 0, &cfg->rport_acceptall);