Fix for `logging-save-default': allow logging settings to be saved with
[u/mdw/putty] / settings.c
index be43f31..f23e1d2 100644 (file)
@@ -29,6 +29,7 @@ static void gpps(void *handle, const char *name, const char *def,
        pdef = platform_default_s(name);
        if (pdef) {
            strncpy(val, pdef, len);
+           sfree(pdef);
        } else {
            strncpy(val, def, len);
        }
@@ -162,10 +163,10 @@ void save_open_settings(void *sesskey, int do_host, Config *cfg)
     write_setting_i(sesskey, "Present", 1);
     if (do_host) {
        write_setting_s(sesskey, "HostName", cfg->host);
-       write_setting_filename(sesskey, "LogFileName", cfg->logfilename);
-       write_setting_i(sesskey, "LogType", cfg->logtype);
-       write_setting_i(sesskey, "LogFileClash", cfg->logxfovr);
     }
+    write_setting_filename(sesskey, "LogFileName", cfg->logfilename);
+    write_setting_i(sesskey, "LogType", cfg->logtype);
+    write_setting_i(sesskey, "LogFileClash", cfg->logxfovr);
     p = "raw";
     for (i = 0; backends[i].name != NULL; i++)
        if (backends[i].protocol == cfg->protocol) {
@@ -279,6 +280,7 @@ void save_open_settings(void *sesskey, int do_host, Config *cfg)
     write_setting_i(sesskey, "TermHeight", cfg->height);
     write_setting_fontspec(sesskey, "Font", cfg->font);
     write_setting_i(sesskey, "FontVTMode", cfg->vtmode);
+    write_setting_i(sesskey, "UseSystemColours", cfg->system_colour);
     write_setting_i(sesskey, "TryPalette", cfg->try_palette);
     write_setting_i(sesskey, "BoldAsColour", cfg->bold_colour);
     for (i = 0; i < 22; i++) {
@@ -533,6 +535,7 @@ void load_open_settings(void *sesskey, int do_host, Config *cfg)
     gppi(sesskey, "TermHeight", 24, &cfg->height);
     gppfont(sesskey, "Font", &cfg->font);
     gppi(sesskey, "FontVTMode", VT_UNICODE, (int *) &cfg->vtmode);
+    gppi(sesskey, "UseSystemColours", 0, &cfg->system_colour);
     gppi(sesskey, "TryPalette", 0, &cfg->try_palette);
     gppi(sesskey, "BoldAsColour", 1, &cfg->bold_colour);
     for (i = 0; i < 22; i++) {