diff options
Diffstat (limited to 'src/getchar.c')
-rw-r--r-- | src/getchar.c | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/src/getchar.c b/src/getchar.c index 6645be8a0e..dac57eb26c 100644 --- a/src/getchar.c +++ b/src/getchar.c @@ -3107,7 +3107,7 @@ check_end_reg_executing(int advance) static int vgetorpeek(int advance) { - int c, c1; + int c; int timedout = FALSE; // waited for more than 'timeoutlen' // for mapping to complete or // 'ttimeoutlen' for complete key code @@ -3474,7 +3474,7 @@ vgetorpeek(int advance) * to the user with showcmd. */ showcmd_idx = 0; - c1 = 0; + int showing_partial = FALSE; if (typebuf.tb_len > 0 && advance && !exmode_active) { if (((State & (MODE_NORMAL | MODE_INSERT)) @@ -3489,7 +3489,7 @@ vgetorpeek(int advance) edit_putchar(typebuf.tb_buf[typebuf.tb_off + typebuf.tb_len - 1], FALSE); setcursor(); // put cursor back where it belongs - c1 = 1; + showing_partial = TRUE; } // need to use the col and row from above here old_wcol = curwin->w_wcol; @@ -3506,8 +3506,10 @@ vgetorpeek(int advance) curwin->w_wrow = old_wrow; } - // this looks nice when typing a dead character map + // This looks nice when typing a dead character map. + // There is no actual command line for get_number(). if ((State & MODE_CMDLINE) + && get_cmdline_info()->cmdbuff != NULL #if defined(FEAT_CRYPT) || defined(FEAT_EVAL) && cmdline_star == 0 #endif @@ -3516,7 +3518,7 @@ vgetorpeek(int advance) { putcmdline(typebuf.tb_buf[typebuf.tb_off + typebuf.tb_len - 1], FALSE); - c1 = 1; + showing_partial = TRUE; } } @@ -3550,11 +3552,12 @@ vgetorpeek(int advance) if (showcmd_idx != 0) pop_showcmd(); - if (c1 == 1) + if (showing_partial) { if (State & MODE_INSERT) edit_unputchar(); - if (State & MODE_CMDLINE) + if ((State & MODE_CMDLINE) + && get_cmdline_info()->cmdbuff != NULL) unputcmdline(); else setcursor(); // put cursor back where it belongs |