\#saveoptions fix
I hadn't ever used #saveoptions before and when I checked to see whether the autounlock:none changes were being handled properly, I discovered that options set via 'm O' weren't being handled at all. This includes some miscellaneous reformatting of things noticed while tracking down the problem.
This commit is contained in:
@@ -1410,6 +1410,8 @@ tipping contents of one container directly into another allowed transferring
|
|||||||
prevent random traps from being created inside the shops in the tourist quest
|
prevent random traps from being created inside the shops in the tourist quest
|
||||||
if hero's steed got hit by knockback effect, impossible "no monster to remove"
|
if hero's steed got hit by knockback effect, impossible "no monster to remove"
|
||||||
would occur (plus more warnings if 'sanity_check' was On)
|
would occur (plus more warnings if 'sanity_check' was On)
|
||||||
|
the #saveoptions command included options changed via doset_simple() but not
|
||||||
|
ones changed via full doset()
|
||||||
|
|
||||||
curses: 'msg_window' option wasn't functional for curses unless the binary
|
curses: 'msg_window' option wasn't functional for curses unless the binary
|
||||||
also included tty support
|
also included tty support
|
||||||
|
|||||||
@@ -2000,11 +2000,13 @@ do_write_config_file(void)
|
|||||||
wait_synch();
|
wait_synch();
|
||||||
pline("Some settings are not saved!");
|
pline("Some settings are not saved!");
|
||||||
wait_synch();
|
wait_synch();
|
||||||
pline("All manual customization and comments are removed from the file!");
|
pline(
|
||||||
|
"All manual customization and comments are removed from the file!");
|
||||||
wait_synch();
|
wait_synch();
|
||||||
}
|
}
|
||||||
#define overwrite_prompt "Overwrite config file %.*s?"
|
#define overwrite_prompt "Overwrite config file %.*s?"
|
||||||
Sprintf(tmp, overwrite_prompt, (int)(BUFSZ - sizeof overwrite_prompt - 2), configfile);
|
Sprintf(tmp, overwrite_prompt,
|
||||||
|
(int) (BUFSZ - sizeof overwrite_prompt - 2), configfile);
|
||||||
#undef overwrite_prompt
|
#undef overwrite_prompt
|
||||||
if (!paranoid_query(TRUE, tmp))
|
if (!paranoid_query(TRUE, tmp))
|
||||||
return ECMD_OK;
|
return ECMD_OK;
|
||||||
@@ -2021,7 +2023,8 @@ do_write_config_file(void)
|
|||||||
fclose(fp);
|
fclose(fp);
|
||||||
strbuf_empty(&buf);
|
strbuf_empty(&buf);
|
||||||
if (wrote != len)
|
if (wrote != len)
|
||||||
pline("An error occurred, wrote only partial data (%lu/%lu).", wrote, len);
|
pline("An error occurred, wrote only partial data (%lu/%lu).",
|
||||||
|
wrote, len);
|
||||||
}
|
}
|
||||||
return ECMD_OK;
|
return ECMD_OK;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4879,8 +4879,8 @@ handler_autounlock(int optidx)
|
|||||||
free((genericptr_t) window_pick);
|
free((genericptr_t) window_pick);
|
||||||
} else if (n == 0) { /* nothing was picked but menu wasn't cancelled */
|
} else if (n == 0) { /* nothing was picked but menu wasn't cancelled */
|
||||||
/* something that was preselected got unselected, leaving nothing;
|
/* something that was preselected got unselected, leaving nothing;
|
||||||
treat that as picking 'none' (even though 'none' might be what
|
treat that as picking 'none' (even though 'none' is no longer
|
||||||
got unselected) */
|
among the choices) */
|
||||||
flags.autounlock = 0;
|
flags.autounlock = 0;
|
||||||
}
|
}
|
||||||
destroy_nhwindow(tmpwin);
|
destroy_nhwindow(tmpwin);
|
||||||
@@ -5703,8 +5703,8 @@ handler_verbose(int optidx)
|
|||||||
flags.verbose = !flags.verbose;
|
flags.verbose = !flags.verbose;
|
||||||
} else {
|
} else {
|
||||||
Sprintf(buf,
|
Sprintf(buf,
|
||||||
"Set verbose_suppressor[%d] (%ld) to what new decimal value ?",
|
"Set verbose_suppressor[%d] (%ld) to what new decimal value ?",
|
||||||
j, verbosity_suppressions[j]);
|
j, verbosity_suppressions[j]);
|
||||||
abuf[0] = '\0';
|
abuf[0] = '\0';
|
||||||
getlin(buf, abuf);
|
getlin(buf, abuf);
|
||||||
if (abuf[0] == '\033')
|
if (abuf[0] == '\033')
|
||||||
@@ -8330,6 +8330,9 @@ doset(void) /* changing options via menu by Per Liboriussen */
|
|||||||
reslt = (*allopt[k].optfn)(allopt[k].idx, do_handler,
|
reslt = (*allopt[k].optfn)(allopt[k].idx, do_handler,
|
||||||
FALSE, empty_optstr,
|
FALSE, empty_optstr,
|
||||||
empty_optstr);
|
empty_optstr);
|
||||||
|
/* if player eventually saves options, include this one */
|
||||||
|
if (reslt == optn_ok)
|
||||||
|
opt_set_in_config[k] = TRUE;
|
||||||
} else {
|
} else {
|
||||||
char abuf[BUFSZ];
|
char abuf[BUFSZ];
|
||||||
|
|
||||||
@@ -8992,7 +8995,8 @@ all_options_strbuf(strbuf_t *sbuf)
|
|||||||
- verbose */
|
- verbose */
|
||||||
buf2 = get_option_value(name, TRUE);
|
buf2 = get_option_value(name, TRUE);
|
||||||
if (buf2) {
|
if (buf2) {
|
||||||
Sprintf(tmp, "OPTIONS=%s:%s\n", name, buf2);
|
Snprintf(tmp, sizeof tmp - 1, "OPTIONS=%s:%s", name, buf2);
|
||||||
|
Strcat(tmp, "\n"); /* guaranteed to fit */
|
||||||
strbuf_append(sbuf, tmp);
|
strbuf_append(sbuf, tmp);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|||||||
Reference in New Issue
Block a user