Mercurial > vim
diff src/getchar.c @ 27156:67194006cad8 v8.2.4107
patch 8.2.4107: script context not restored after using <ScriptCmd>
Commit: https://github.com/vim/vim/commit/a9725221ac4650b7e9219bf6e3682826fe2e0096
Author: Bram Moolenaar <Bram@vim.org>
Date: Sun Jan 16 13:30:33 2022 +0000
patch 8.2.4107: script context not restored after using <ScriptCmd>
Problem: Script context not restored after using <ScriptCmd>.
Solution: Also restore context when not in a script. (closes https://github.com/vim/vim/issues/9536)
Add the 'c' flag to feedkeys() to be able to test this.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sun, 16 Jan 2022 14:45:03 +0100 |
parents | 54f0a6a9db2d |
children | bd072d44eb2c |
line wrap: on
line diff
--- a/src/getchar.c +++ b/src/getchar.c @@ -3797,7 +3797,7 @@ getcmdkeycmd( } } else - ga_append(&line_ga, (char)c1); + ga_append(&line_ga, c1); cmod = 0; } @@ -3815,7 +3815,7 @@ do_cmdkey_command(int key UNUSED, int fl { int res; #ifdef FEAT_EVAL - sctx_T save_current_sctx = {0, 0, 0, 0}; + sctx_T save_current_sctx = {-1, 0, 0, 0}; if (key == K_SCRIPT_COMMAND && last_used_map != NULL) { @@ -3827,7 +3827,7 @@ do_cmdkey_command(int key UNUSED, int fl res = do_cmdline(NULL, getcmdkeycmd, NULL, flags); #ifdef FEAT_EVAL - if (save_current_sctx.sc_sid > 0) + if (save_current_sctx.sc_sid >= 0) current_sctx = save_current_sctx; #endif