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