0
0
mirror of https://github.com/vim/vim.git synced 2025-09-24 03:44:06 -04:00

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)
This commit is contained in:
Bram Moolenaar
2017-07-16 15:24:01 +02:00
parent c0aa482a5a
commit 6a77d2667e
2 changed files with 8 additions and 4 deletions

View File

@@ -54,6 +54,8 @@ static int new_cmdpos; /* position set by set_cmdline_pos() */
static int extra_char = NUL; /* extra character to display when redrawing static int extra_char = NUL; /* extra character to display when redrawing
* the command line */ * the command line */
static int extra_char_shift;
#ifdef FEAT_CMDHIST #ifdef FEAT_CMDHIST
typedef struct hist_entry typedef struct hist_entry
{ {
@@ -1175,7 +1177,6 @@ getcmdline(
dont_scroll = TRUE; /* disallow scrolling here */ dont_scroll = TRUE; /* disallow scrolling here */
#endif #endif
putcmdline('"', TRUE); putcmdline('"', TRUE);
extra_char = '"';
++no_mapping; ++no_mapping;
i = c = plain_vgetc(); /* CTRL-R <char> */ i = c = plain_vgetc(); /* CTRL-R <char> */
if (i == Ctrl_O) if (i == Ctrl_O)
@@ -1759,7 +1760,6 @@ getcmdline(
ignore_drag_release = TRUE; ignore_drag_release = TRUE;
#endif #endif
putcmdline('^', TRUE); putcmdline('^', TRUE);
extra_char = '^';
c = get_literal(); /* get next (two) character(s) */ c = get_literal(); /* get next (two) character(s) */
do_abbr = FALSE; /* don't do abbreviation now */ do_abbr = FALSE; /* don't do abbreviation now */
extra_char = NUL; extra_char = NUL;
@@ -1780,7 +1780,6 @@ getcmdline(
ignore_drag_release = TRUE; ignore_drag_release = TRUE;
#endif #endif
putcmdline('?', TRUE); putcmdline('?', TRUE);
extra_char = '?';
#ifdef USE_ON_FLY_SCROLL #ifdef USE_ON_FLY_SCROLL
dont_scroll = TRUE; /* disallow scrolling here */ dont_scroll = TRUE; /* disallow scrolling here */
#endif #endif
@@ -2945,6 +2944,8 @@ putcmdline(int c, int shift)
draw_cmdline(ccline.cmdpos, ccline.cmdlen - ccline.cmdpos); draw_cmdline(ccline.cmdpos, ccline.cmdlen - ccline.cmdpos);
msg_no_more = FALSE; msg_no_more = FALSE;
cursorcmd(); cursorcmd();
extra_char = c;
extra_char_shift = shift;
} }
/* /*
@@ -2967,6 +2968,7 @@ unputcmdline(void)
draw_cmdline(ccline.cmdpos, 1); draw_cmdline(ccline.cmdpos, 1);
msg_no_more = FALSE; msg_no_more = FALSE;
cursorcmd(); cursorcmd();
extra_char = NUL;
} }
/* /*
@@ -3418,7 +3420,7 @@ redrawcmd(void)
set_cmdspos_cursor(); set_cmdspos_cursor();
if (extra_char != NUL) 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, * An emsg() before may have set msg_scroll. This is used in normal mode,

View File

@@ -769,6 +769,8 @@ static char *(features[]) =
static int included_patches[] = static int included_patches[] =
{ /* Add new patch number below this line */ { /* Add new patch number below this line */
/**/
720,
/**/ /**/
719, 719,
/**/ /**/