More #saveoptions and cond_ options
Only save the cond_ options that are different from the default.
This commit is contained in:
10
src/botl.c
10
src/botl.c
@@ -1174,7 +1174,8 @@ cond_menu(void)
|
||||
}
|
||||
|
||||
/* called by all_options_conds() to get value for next cond_xyz option
|
||||
so that #saveoptions can collect it and write the set into new RC file */
|
||||
so that #saveoptions can collect it and write the set into new RC file.
|
||||
returns zero-length string if the option is the default value. */
|
||||
boolean
|
||||
opt_next_cond(int indx, char *outbuf)
|
||||
{
|
||||
@@ -1200,8 +1201,11 @@ opt_next_cond(int indx, char *outbuf)
|
||||
* wasn't used to choose their preferred order.
|
||||
*/
|
||||
|
||||
Sprintf(outbuf, "%scond_%s", condtests[indx].enabled ? "" : "!",
|
||||
condtests[indx].useroption);
|
||||
if ((condtests[indx].opt == opt_in && condtests[indx].enabled)
|
||||
|| (condtests[indx].opt == opt_out && !condtests[indx].enabled)) {
|
||||
Sprintf(outbuf, "%scond_%s", condtests[indx].enabled ? "" : "!",
|
||||
condtests[indx].useroption);
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
@@ -9426,6 +9426,7 @@ all_options_conds(strbuf_t *sbuf)
|
||||
{
|
||||
char buf[BUFSZ], nextcond[BUFSZ];
|
||||
int idx = 0;
|
||||
boolean gotone = FALSE;
|
||||
|
||||
buf[0] = '\0';
|
||||
while (opt_next_cond(idx, nextcond)) {
|
||||
@@ -9439,10 +9440,13 @@ all_options_conds(strbuf_t *sbuf)
|
||||
strbuf_append(sbuf, buf);
|
||||
/* indent continuation line */
|
||||
Sprintf(buf, "%8s", " "); /* 8: strlen("OPTIONS=") */
|
||||
} else {
|
||||
} else if (nextcond[0] && gotone) {
|
||||
Strcat(buf, ",");
|
||||
}
|
||||
Strcat(buf, nextcond);
|
||||
if (nextcond[0]) {
|
||||
gotone = TRUE;
|
||||
Strcat(buf, nextcond);
|
||||
}
|
||||
++idx;
|
||||
}
|
||||
/* finish off final line */
|
||||
|
||||
Reference in New Issue
Block a user