static int new_cmdpos; /* position set by set_cmdline_pos() */
#endif
+static int extra_char = NUL; /* extra character to display when redrawing
+ * the command line */
#ifdef FEAT_CMDHIST
typedef struct hist_entry
{
dont_scroll = TRUE; /* disallow scrolling here */
#endif
putcmdline('"', TRUE);
+ extra_char = '"';
++no_mapping;
i = c = plain_vgetc(); /* CTRL-R <char> */
if (i == Ctrl_O)
i = Ctrl_R; /* CTRL-R CTRL-O == CTRL-R CTRL-R */
if (i == Ctrl_R)
c = plain_vgetc(); /* CTRL-R CTRL-R <char> */
+ extra_char = NUL;
--no_mapping;
#ifdef FEAT_EVAL
/*
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;
#ifdef FEAT_MBYTE
/* may need to remove ^ when composing char was typed */
if (enc_utf8 && utf_iscomposing(c) && !cmd_silent)
ignore_drag_release = TRUE;
#endif
putcmdline('?', TRUE);
+ extra_char = '?';
#ifdef USE_ON_FLY_SCROLL
dont_scroll = TRUE; /* disallow scrolling here */
#endif
c = get_digraph(TRUE);
+ extra_char = NUL;
if (c != NUL)
break;
msg_no_more = FALSE;
set_cmdspos_cursor();
+ if (extra_char != NUL)
+ putcmdline(extra_char, TRUE);
/*
* An emsg() before may have set msg_scroll. This is used in normal mode,