diff options
author | zeertzjq <zeertzjq@outlook.com> | 2022-04-10 07:20:35 +0800 |
---|---|---|
committer | zeertzjq <zeertzjq@outlook.com> | 2022-04-10 08:02:22 +0800 |
commit | 263a7fde35f2341f526a536690122b927300021a (patch) | |
tree | 99339f45da62e1054f9384f102e686b557c02c40 /src/nvim/eval | |
parent | ff726cc569994aab61a42c40270e679dc80cca7c (diff) | |
download | rneovim-263a7fde35f2341f526a536690122b927300021a.tar.gz rneovim-263a7fde35f2341f526a536690122b927300021a.tar.bz2 rneovim-263a7fde35f2341f526a536690122b927300021a.zip |
vim-patch:8.2.4723: the ModeChanged autocmd event is inefficient
Problem: The ModeChanged autocmd event is inefficient.
Solution: Avoid allocating memory. (closes vim/vim#10134) Rename
trigger_modechanged() to may_trigger_modechanged().
https://github.com/vim/vim/commit/2bf52dd065495cbf28e28792f2c2d50d44546d9f
Make v:event readonly for ModeChanged.
Diffstat (limited to 'src/nvim/eval')
-rw-r--r-- | src/nvim/eval/funcs.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/nvim/eval/funcs.c b/src/nvim/eval/funcs.c index f7d9f76534..d365e075e6 100644 --- a/src/nvim/eval/funcs.c +++ b/src/nvim/eval/funcs.c @@ -6094,15 +6094,17 @@ static void f_mkdir(typval_T *argvars, typval_T *rettv, FunPtr fptr) /// "mode()" function static void f_mode(typval_T *argvars, typval_T *rettv, FunPtr fptr) { - char *mode = get_mode(); + char buf[MODE_MAX_LENGTH]; + + get_mode(buf); // Clear out the minor mode when the argument is not a non-zero number or // non-empty string. if (!non_zero_arg(&argvars[0])) { - mode[1] = NUL; + buf[1] = NUL; } - rettv->vval.v_string = (char_u *)mode; + rettv->vval.v_string = vim_strsave((char_u *)buf); rettv->v_type = VAR_STRING; } |