static void gpps(void *handle, char *name, 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);
}
/* proxy settings */
write_setting_s(sesskey, "ProxyExcludeList", cfg->proxy_exclude_list);
+ write_setting_i(sesskey, "ProxyDNS", cfg->proxy_dns);
+ write_setting_i(sesskey, "ProxyLocalhost", cfg->even_proxy_localhost);
write_setting_i(sesskey, "ProxyType", cfg->proxy_type);
write_setting_s(sesskey, "ProxyHost", cfg->proxy_host);
write_setting_i(sesskey, "ProxyPort", cfg->proxy_port);
void load_settings(char *section, int do_host, Config * cfg)
{
- int i;
- char prot[10];
void *sesskey;
sesskey = open_settings_r(section);
+ load_open_settings(sesskey, do_host, cfg);
+ close_settings_r(sesskey);
+}
+
+void load_open_settings(void *sesskey, int do_host, Config *cfg)
+{
+ int i;
+ char prot[10];
cfg->ssh_subsys = 0; /* FIXME: load this properly */
cfg->remote_cmd_ptr = cfg->remote_cmd;
* 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 */
/* proxy settings */
gpps(sesskey, "ProxyExcludeList", "", cfg->proxy_exclude_list,
sizeof(cfg->proxy_exclude_list));
+ gppi(sesskey, "ProxyDNS", PROXYDNS_AUTO, &i); cfg->proxy_dns = i;
+ gppi(sesskey, "ProxyLocalhost", 0, &cfg->even_proxy_localhost);
gppi(sesskey, "ProxyType", PROXY_NONE, &i); cfg->proxy_type = i;
gpps(sesskey, "ProxyHost", "proxy", cfg->proxy_host,
sizeof(cfg->proxy_host));
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;
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, "ScrollbarOnLeft", 0, &cfg->scrollbar_on_left);
gpps(sesskey, "BoldFont", "", cfg->boldfont, sizeof(cfg->boldfont));
gppi(sesskey, "ShadowBoldOffset", 1, &cfg->shadowboldoffset);
-
- close_settings_r(sesskey);
}
void do_defaults(char *session, Config * cfg)