From 0c99ae7a88216f32ad188fc67ed00387c6ce2cae Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Mon, 17 Apr 2023 15:14:01 +0800 Subject: vim-patch:8.2.4180: 'balloonexpr' is evaluated in the current script context Problem: 'balloonexpr' is evaluated in the current script context. Solution: Use the script context where the option was set. https://github.com/vim/vim/commit/5600a709f453045c80f92087acc0f855b4af377a Co-authored-by: Bram Moolenaar --- src/nvim/option.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'src') diff --git a/src/nvim/option.c b/src/nvim/option.c index 6d4e7de1a3..3b674ce726 100644 --- a/src/nvim/option.c +++ b/src/nvim/option.c @@ -1913,6 +1913,18 @@ bool parse_winhl_opt(win_T *wp) return true; } +/// Get the script context of global option "name". +sctx_T *get_option_sctx(const char *const name) +{ + int idx = findoption(name); + + if (idx >= 0) { + return &options[idx].last_set.script_ctx; + } + siemsg("no such option: %s", name); + return NULL; +} + /// Set the script_ctx for an option, taking care of setting the buffer- or /// window-local value. void set_option_sctx_idx(int opt_idx, int opt_flags, sctx_T script_ctx) -- cgit