refactor(option.c): call did_set_option for all types

set_option_value() only called did_set_option() for string options,
whereas do_set_option_value() called it for all types.

This change makes set_option_value() call did_set_option() for all types
and thus makes it more consistent with do_set_option_value().
This commit is contained in:
Lewis Russell
2023-07-12 14:54:13 +01:00
parent 804c828e68
commit 354a115442
2 changed files with 10 additions and 9 deletions

View File

@@ -1598,7 +1598,7 @@ int do_set(char *arg, int opt_flags)
/// @param opt_flags possibly with OPT_MODELINE
/// @param new_value value was replaced completely
/// @param value_checked value was checked to be safe, no need to set P_INSECURE
void did_set_option(int opt_idx, int opt_flags, int new_value, int value_checked)
void did_set_option(int opt_idx, int opt_flags, bool new_value, bool value_checked)
{
options[opt_idx].flags |= P_WAS_SET;
@@ -3793,6 +3793,8 @@ const char *set_option_value(const char *const name, const OptVal value, int opt
goto end;
}
int value_checked = false;
switch (v.type) {
case kOptValTypeNil:
abort(); // This will never happen.
@@ -3825,11 +3827,15 @@ const char *set_option_value(const char *const name, const OptVal value, int opt
if (s == NULL || opt_flags & OPT_CLEAR) {
s = "";
}
errmsg = set_string_option(opt_idx, s, opt_flags, errbuf, sizeof(errbuf));
errmsg = set_string_option(opt_idx, s, opt_flags, &value_checked, errbuf, sizeof(errbuf));
break;
}
}
if (errmsg != NULL) {
did_set_option(opt_idx, opt_flags, true, value_checked);
}
end:
optval_free(v); // Free the copied OptVal.
return errmsg;