diff --git a/sysmisc.c b/sysmisc.c index b41ea68..1bc27d2 100644 --- a/sysmisc.c +++ b/sysmisc.c @@ -400,6 +400,7 @@ void ezconf_write_start(Ezconf_write *ezcw, Confopt_w *opts, size_t optscount) { switch (conf_save_start(&ezcw->save)) { case Conf_save_start_ok: error = Ezconf_write_ok; + ezcw->file = ezcw->save.tempfile; break; case Conf_save_start_alloc_failed: error = Ezconf_write_oom; @@ -523,6 +524,7 @@ cancel: conf_save_cancel(&ezcw->save); // ^- Sets tempfile to null, which we use as a guard at the top of this // function. + ezcw->file = NULL; ezcw->stateflags = 0; return false; commit:; @@ -541,6 +543,7 @@ commit:; error = Ezconf_write_rename_failed; break; } + ezcw->file = NULL; ezcw->error = error; ezcw->stateflags = 0; return false; diff --git a/sysmisc.h b/sysmisc.h index 8bcaf75..0e8dd1b 100644 --- a/sysmisc.h +++ b/sysmisc.h @@ -119,6 +119,7 @@ typedef struct { Confopt_w *opts; size_t optscount; intptr_t optid; + FILE *file; Ezconf_write_error error; U32 stateflags; } Ezconf_write; diff --git a/tui_main.c b/tui_main.c index d003e5b..5981e1c 100644 --- a/tui_main.c +++ b/tui_main.c @@ -2433,11 +2433,11 @@ void save_prefs_with_error_message(Midi_mode const *midi_mode, int softmargin_y, switch (ez.optid) { #ifdef FEAT_PORTMIDI case Confopt_portmidi_output_device: - fputs(osoc(midi_output_device_name), ez.save.tempfile); + fputs(osoc(midi_output_device_name), ez.file); break; #endif case Confopt_margins: - fprintf(ez.save.tempfile, "%dx%d", softmargin_x, softmargin_y); + fprintf(ez.file, "%dx%d", softmargin_x, softmargin_y); break; } }