diff options
author | zeertzjq <zeertzjq@outlook.com> | 2022-11-29 21:07:29 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-11-29 21:07:29 +0800 |
commit | d311c5481dede47d752fa39cb00d728ba18ef5bc (patch) | |
tree | dd2c01f384b4c3713a1d9c5b976cd7c0f8c91fcd /src/nvim/eval/vars.c | |
parent | 89f0987bde8124f8fcbbcbf8320dbdabe0d69ba9 (diff) | |
parent | 95f5cf96912727a1ede055211645ac9779f3da44 (diff) | |
download | rneovim-d311c5481dede47d752fa39cb00d728ba18ef5bc.tar.gz rneovim-d311c5481dede47d752fa39cb00d728ba18ef5bc.tar.bz2 rneovim-d311c5481dede47d752fa39cb00d728ba18ef5bc.zip |
Merge pull request #21234 from zeertzjq/vim-9.0.0965
vim-patch:9.0.{0965,0966,0967}: using one window for executing autocommands is insufficient
Diffstat (limited to 'src/nvim/eval/vars.c')
-rw-r--r-- | src/nvim/eval/vars.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/nvim/eval/vars.c b/src/nvim/eval/vars.c index 5459eac5bf..f002071ad2 100644 --- a/src/nvim/eval/vars.c +++ b/src/nvim/eval/vars.c @@ -1800,13 +1800,15 @@ void f_setbufvar(typval_T *argvars, typval_T *rettv, EvalFuncData fptr) if (*varname == '&') { aco_save_T aco; - // set curbuf to be our buf, temporarily + // Set curbuf to be our buf, temporarily. aucmd_prepbuf(&aco, buf); + if (curbuf == buf) { + // Only when it worked to set "curbuf". + set_option_from_tv(varname + 1, varp); - set_option_from_tv(varname + 1, varp); - - // reset notion of buffer - aucmd_restbuf(&aco); + // reset notion of buffer + aucmd_restbuf(&aco); + } } else { const size_t varname_len = strlen(varname); char *const bufvarname = xmalloc(varname_len + 3); |