diff options
author | zeertzjq <zeertzjq@outlook.com> | 2022-07-27 07:25:13 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-07-27 07:25:13 +0800 |
commit | 2fdb0de1975b015d8745141eaa18e62af793e0ef (patch) | |
tree | da96e28622a4caf0a304f1827439b01a88829778 /src/nvim/ex_getln.c | |
parent | 49d2256ae5b747830160a1dd1f3f532cf726b394 (diff) | |
parent | fc55f8263c6c8d8851fa2b6290083a64da1ebd28 (diff) | |
download | rneovim-2fdb0de1975b015d8745141eaa18e62af793e0ef.tar.gz rneovim-2fdb0de1975b015d8745141eaa18e62af793e0ef.tar.bz2 rneovim-2fdb0de1975b015d8745141eaa18e62af793e0ef.zip |
Merge pull request #19528 from zeertzjq/vim-9.0.0051
vim-patch:9.0.{0051,0082,0083,0086}: cmdline fixes
Diffstat (limited to 'src/nvim/ex_getln.c')
-rw-r--r-- | src/nvim/ex_getln.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/nvim/ex_getln.c b/src/nvim/ex_getln.c index 3038e7bd04..906e52f183 100644 --- a/src/nvim/ex_getln.c +++ b/src/nvim/ex_getln.c @@ -880,6 +880,12 @@ static uint8_t *command_line_enter(int firstc, long count, int indent, bool init found_one = true; } } + + if (*p_tal != NUL) { + redraw_tabline = true; + found_one = true; + } + if (found_one) { redraw_statuslines(); } @@ -1068,7 +1074,8 @@ static int command_line_execute(VimState *state, int key) // Don't ignore it for the input() function. if ((s->c == Ctrl_C) && s->firstc != '@' - && !s->break_ctrl_c + // do clear got_int in Ex mode to avoid infinite Ctrl-C loop + && (!s->break_ctrl_c || exmode_active) && !global_busy) { got_int = false; } @@ -6804,9 +6811,13 @@ static int open_cmdwin(void) // Avoid command-line window first character being concealed. curwin->w_p_cole = 0; + // First go back to the original window. wp = curwin; set_bufref(&bufref, curbuf); win_goto(old_curwin); + + // win_goto() may trigger an autocommand that already closes the + // cmdline window. if (win_valid(wp) && wp != curwin) { win_close(wp, true, false); } |