Add missing check for failure to agree a host key algorithm.
[sgt/putty] / unix / gtkwin.c
index 996e424..616a69a 100644 (file)
@@ -159,14 +159,12 @@ FontSpec *platform_default_fontspec(const char *name)
         return fontspec_new("");
 }
 
-Filename platform_default_filename(const char *name)
+Filename *platform_default_filename(const char *name)
 {
-    Filename ret;
     if (!strcmp(name, "LogFileName"))
-       strcpy(ret.path, "putty.log");
+       return filename_from_str("putty.log");
     else
-       *ret.path = '\0';
-    return ret;
+       return filename_from_str("");
 }
 
 char *platform_default_s(const char *name)
@@ -2551,7 +2549,7 @@ int do_cmdline(int argc, char **argv, int do_everything, int *allow_launch,
            EXPECTS_ARG;
            SECOND_PASS_ONLY;
             fs = fontspec_new(val);
-           conf_set_fontspec(conf, CONF_font, fs);
+           conf_set_fontspec(conf, CONF_boldfont, fs);
             fontspec_free(fs);
 
        } else if (!strcmp(p, "-fw")) {
@@ -2559,7 +2557,7 @@ int do_cmdline(int argc, char **argv, int do_everything, int *allow_launch,
            EXPECTS_ARG;
            SECOND_PASS_ONLY;
             fs = fontspec_new(val);
-           conf_set_fontspec(conf, CONF_font, fs);
+           conf_set_fontspec(conf, CONF_widefont, fs);
             fontspec_free(fs);
 
        } else if (!strcmp(p, "-fwb")) {
@@ -2567,7 +2565,7 @@ int do_cmdline(int argc, char **argv, int do_everything, int *allow_launch,
            EXPECTS_ARG;
            SECOND_PASS_ONLY;
             fs = fontspec_new(val);
-           conf_set_fontspec(conf, CONF_font, fs);
+           conf_set_fontspec(conf, CONF_wideboldfont, fs);
             fontspec_free(fs);
 
        } else if (!strcmp(p, "-cs")) {
@@ -2648,13 +2646,13 @@ int do_cmdline(int argc, char **argv, int do_everything, int *allow_launch,
            conf_set_str(conf, CONF_wintitle, val);
 
        } else if (!strcmp(p, "-log")) {
-           Filename fn;
+           Filename *fn;
            EXPECTS_ARG;
            SECOND_PASS_ONLY;
-           strncpy(fn.path, val, sizeof(fn.path));
-           fn.path[sizeof(fn.path)-1] = '\0';
-           conf_set_filename(conf, CONF_logfilename, &fn);
+            fn = filename_from_str(val);
+           conf_set_filename(conf, CONF_logfilename, fn);
            conf_set_int(conf, CONF_logtype, LGTYP_DEBUG);
+            filename_free(fn);
 
        } else if (!strcmp(p, "-ut-") || !strcmp(p, "+ut")) {
            SECOND_PASS_ONLY;
@@ -2727,6 +2725,24 @@ void uxsel_input_remove(int id) {
     gdk_input_remove(id);
 }
 
+int frontend_net_pending_error_idle_id;
+int frontend_got_net_pending_errors = FALSE;
+gboolean frontend_net_pending_errors(gpointer data)
+{
+    net_pending_errors();
+    gtk_idle_remove(frontend_net_pending_error_idle_id);
+    frontend_got_net_pending_errors = FALSE;
+    return FALSE;
+}
+void frontend_net_error_pending(void)
+{
+    if (!frontend_got_net_pending_errors) {
+        frontend_got_net_pending_errors = TRUE;
+        frontend_net_pending_error_idle_id =
+            gtk_idle_add(frontend_net_pending_errors, NULL);
+    }
+}
+
 void setup_fonts_ucs(struct gui_data *inst)
 {
     int shadowbold = conf_get_int(inst->conf, CONF_shadowbold);
@@ -2973,6 +2989,8 @@ void change_settings_menuitem(GtkMenuItem *item, gpointer data)
                   conf_get_fontspec(newconf, CONF_wideboldfont)->name) ||
            strcmp(conf_get_str(oldconf, CONF_line_codepage),
                   conf_get_str(newconf, CONF_line_codepage)) ||
+           conf_get_int(oldconf, CONF_utf8_override) !=
+           conf_get_int(newconf, CONF_utf8_override) ||
            conf_get_int(oldconf, CONF_vtmode) !=
            conf_get_int(newconf, CONF_vtmode) ||
            conf_get_int(oldconf, CONF_shadowbold) !=