changeset 11674:d093e4167733 v8.0.0720

patch 8.0.0720: unfinished mapping not displayed when running timer commit https://github.com/vim/vim/commit/6a77d2667e982655f6adacee774ee7aa2581bd8a Author: Bram Moolenaar <Bram@vim.org> Date: Sun Jul 16 15:24:01 2017 +0200 patch 8.0.0720: unfinished mapping not displayed when running timer Problem: Unfinished mapping not displayed when running timer. Solution: Also use the extra_char while waiting for a mapping and digraph. (closes #1844)
author Christian Brabandt <cb@256bit.org>
date Sun, 16 Jul 2017 15:30:03 +0200
parents 413bb3fd261e
children 7b139bb167d1
files src/ex_getln.c src/version.c
diffstat 2 files changed, 8 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/src/ex_getln.c
+++ b/src/ex_getln.c
@@ -54,6 +54,8 @@ static int	new_cmdpos;	/* position set b
 
 static int	extra_char = NUL;  /* extra character to display when redrawing
 				    * the command line */
+static int	extra_char_shift;
+
 #ifdef FEAT_CMDHIST
 typedef struct hist_entry
 {
@@ -1175,7 +1177,6 @@ getcmdline(
 		dont_scroll = TRUE;	/* disallow scrolling here */
 #endif
 		putcmdline('"', TRUE);
-		extra_char = '"';
 		++no_mapping;
 		i = c = plain_vgetc();	/* CTRL-R <char> */
 		if (i == Ctrl_O)
@@ -1759,7 +1760,6 @@ getcmdline(
 		ignore_drag_release = TRUE;
 #endif
 		putcmdline('^', TRUE);
-		extra_char = '^';
 		c = get_literal();	    /* get next (two) character(s) */
 		do_abbr = FALSE;	    /* don't do abbreviation now */
 		extra_char = NUL;
@@ -1780,7 +1780,6 @@ getcmdline(
 		ignore_drag_release = TRUE;
 #endif
 		putcmdline('?', TRUE);
-		extra_char = '?';
 #ifdef USE_ON_FLY_SCROLL
 		dont_scroll = TRUE;	    /* disallow scrolling here */
 #endif
@@ -2945,6 +2944,8 @@ putcmdline(int c, int shift)
 	draw_cmdline(ccline.cmdpos, ccline.cmdlen - ccline.cmdpos);
     msg_no_more = FALSE;
     cursorcmd();
+    extra_char = c;
+    extra_char_shift = shift;
 }
 
 /*
@@ -2967,6 +2968,7 @@ unputcmdline(void)
 	draw_cmdline(ccline.cmdpos, 1);
     msg_no_more = FALSE;
     cursorcmd();
+    extra_char = NUL;
 }
 
 /*
@@ -3418,7 +3420,7 @@ redrawcmd(void)
 
     set_cmdspos_cursor();
     if (extra_char != NUL)
-	putcmdline(extra_char, TRUE);
+	putcmdline(extra_char, extra_char_shift);
 
     /*
      * An emsg() before may have set msg_scroll. This is used in normal mode,
--- a/src/version.c
+++ b/src/version.c
@@ -770,6 +770,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    720,
+/**/
     719,
 /**/
     718,