# HG changeset patch # User Christian Brabandt # Date 1537524017 -7200 # Node ID cca823b02a04ce8376fc8ebd3d4e63401f682512 # Parent 2739f3b643cc897be236a214616abf1e27e9c7ea patch 8.1.0414: v:option_old is cleared when using :set in OptionSet autocmd commit https://github.com/vim/vim/commit/3f3fb0b14734272e7c817020c847aaa0fba5cea5 Author: Bram Moolenaar Date: Fri Sep 21 11:59:32 2018 +0200 patch 8.1.0414: v:option_old is cleared when using :set in OptionSet autocmd Problem: v:option_old and v:option_new are cleared when using :set in OptionSet autocmd. (Gary Johnson) Solution: Don't trigger OptionSet recursively. diff --git a/src/option.c b/src/option.c --- a/src/option.c +++ b/src/option.c @@ -4359,7 +4359,9 @@ trigger_optionsset_string( char_u *oldval, char_u *newval) { - if (oldval != NULL && newval != NULL) + // Don't do this recursively. + if (oldval != NULL && newval != NULL + && *get_vim_var_str(VV_OPTION_TYPE) == NUL) { char_u buf_type[7]; @@ -8858,9 +8860,11 @@ set_bool_option( options[opt_idx].flags |= P_WAS_SET; #if defined(FEAT_EVAL) - if (!starting) + // Don't do this while starting up or recursively. + if (!starting && *get_vim_var_str(VV_OPTION_TYPE) == NUL) { char_u buf_old[2], buf_new[2], buf_type[7]; + vim_snprintf((char *)buf_old, 2, "%d", old_value ? TRUE: FALSE); vim_snprintf((char *)buf_new, 2, "%d", value ? TRUE: FALSE); vim_snprintf((char *)buf_type, 7, "%s", (opt_flags & OPT_LOCAL) ? "local" : "global"); @@ -9415,7 +9419,8 @@ set_num_option( options[opt_idx].flags |= P_WAS_SET; #if defined(FEAT_EVAL) - if (!starting && errmsg == NULL) + // Don't do this while starting up, failure or recursively. + if (!starting && errmsg == NULL && *get_vim_var_str(VV_OPTION_TYPE) == NUL) { char_u buf_old[11], buf_new[11], buf_type[7]; vim_snprintf((char *)buf_old, 10, "%ld", old_value); diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -795,6 +795,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 414, +/**/ 413, /**/ 412,