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 opt_flags possibly with OPT_MODELINE
|
||||||
/// @param new_value value was replaced completely
|
/// @param new_value value was replaced completely
|
||||||
/// @param value_checked value was checked to be safe, no need to set P_INSECURE
|
/// @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;
|
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;
|
goto end;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int value_checked = false;
|
||||||
|
|
||||||
switch (v.type) {
|
switch (v.type) {
|
||||||
case kOptValTypeNil:
|
case kOptValTypeNil:
|
||||||
abort(); // This will never happen.
|
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) {
|
if (s == NULL || opt_flags & OPT_CLEAR) {
|
||||||
s = "";
|
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;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (errmsg != NULL) {
|
||||||
|
did_set_option(opt_idx, opt_flags, true, value_checked);
|
||||||
|
}
|
||||||
|
|
||||||
end:
|
end:
|
||||||
optval_free(v); // Free the copied OptVal.
|
optval_free(v); // Free the copied OptVal.
|
||||||
return errmsg;
|
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.
|
/// @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,
|
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
|
FUNC_ATTR_NONNULL_ARG(2) FUNC_ATTR_WARN_UNUSED_RESULT
|
||||||
{
|
{
|
||||||
vimoption_T *opt = get_option(opt_idx);
|
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_oldval_g = (oldval_g != NULL) ? xstrdup(oldval_g) : 0;
|
||||||
char *const saved_newval = xstrdup(*varp);
|
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,
|
const char *const errmsg = did_set_string_option(curbuf, curwin, opt_idx, varp, oldval, errbuf,
|
||||||
errbuflen, opt_flags, &value_checked);
|
errbuflen, opt_flags, value_checked);
|
||||||
if (errmsg == NULL) {
|
|
||||||
did_set_option(opt_idx, opt_flags, true, value_checked);
|
|
||||||
}
|
|
||||||
|
|
||||||
// call autocommand after handling side effects
|
// call autocommand after handling side effects
|
||||||
if (errmsg == NULL) {
|
if (errmsg == NULL) {
|
||||||
if (!starting) {
|
if (!starting) {
|
||||||
|
Loading…
Reference in New Issue
Block a user