aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/nvim/option.c17
1 files changed, 10 insertions, 7 deletions
diff --git a/src/nvim/option.c b/src/nvim/option.c
index 61570a75b1..ed845df416 100644
--- a/src/nvim/option.c
+++ b/src/nvim/option.c
@@ -4756,18 +4756,21 @@ int get_option_value_strict(char *name,
// Special case: 'modified' is b_changed, but we also want to
// consider it set when 'ff' or 'fenc' changed.
if (p->indir == PV_MOD) {
- *numval = bufIsChanged((buf_T *) from);
+ *numval = bufIsChanged((buf_T *)from);
varp = NULL;
} else {
- aco_save_T aco;
- aucmd_prepbuf(&aco, (buf_T *) from);
+ buf_T *save_curbuf = curbuf;
+
+ // only getting a pointer, no need to use aucmd_prepbuf()
+ curbuf = (buf_T *)from;
+ curwin->w_buffer = curbuf;
varp = get_varp(p);
- aucmd_restbuf(&aco);
+ curbuf = save_curbuf;
+ curwin->w_buffer = curbuf;
}
} else if (opt_type == SREQ_WIN) {
- win_T *save_curwin;
- save_curwin = curwin;
- curwin = (win_T *) from;
+ win_T *save_curwin = curwin;
+ curwin = (win_T *)from;
curbuf = curwin->w_buffer;
varp = get_varp(p);
curwin = save_curwin;