Mercurial > vim
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,