mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
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:
parent
804c828e68
commit
354a115442
@ -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;
|
||||
|
@ -428,7 +428,7 @@ void set_string_option_direct_in_buf(buf_T *buf, const char *name, int opt_idx,
|
||||
///
|
||||
/// @return NULL on success, an untranslated error message on error.
|
||||
const char *set_string_option(const int opt_idx, const char *const value, const int opt_flags,
|
||||
char *const errbuf, const size_t errbuflen)
|
||||
int *value_checked, char *const errbuf, const size_t errbuflen)
|
||||
FUNC_ATTR_NONNULL_ARG(2) FUNC_ATTR_WARN_UNUSED_RESULT
|
||||
{
|
||||
vimoption_T *opt = get_option(opt_idx);
|
||||
@ -457,13 +457,8 @@ const char *set_string_option(const int opt_idx, const char *const value, const
|
||||
char *const saved_oldval_g = (oldval_g != NULL) ? xstrdup(oldval_g) : 0;
|
||||
char *const saved_newval = xstrdup(*varp);
|
||||
|
||||
int value_checked = false;
|
||||
const char *const errmsg = did_set_string_option(curbuf, curwin, opt_idx, varp, oldval, errbuf,
|
||||
errbuflen, opt_flags, &value_checked);
|
||||
if (errmsg == NULL) {
|
||||
did_set_option(opt_idx, opt_flags, true, value_checked);
|
||||
}
|
||||
|
||||
errbuflen, opt_flags, value_checked);
|
||||
// call autocommand after handling side effects
|
||||
if (errmsg == NULL) {
|
||||
if (!starting) {
|
||||
|
Loading…
Reference in New Issue
Block a user