diff options
author | Justin M. Keyes <justinkz@gmail.com> | 2016-03-02 01:24:38 -0500 |
---|---|---|
committer | Justin M. Keyes <justinkz@gmail.com> | 2016-03-02 01:24:38 -0500 |
commit | 56bfdd79346fd71fb0b587f8183c1cc3a0ddbae1 (patch) | |
tree | 28c7be449883276c7f3121e0af9ff85e9a7e4901 /src/nvim/screen.c | |
parent | 36cb847d09afc840f9875b93d504650332b623c3 (diff) | |
parent | 0d6cd2b8087d9ae7fdb2b70fcc40ecaf378b0af7 (diff) | |
download | rneovim-56bfdd79346fd71fb0b587f8183c1cc3a0ddbae1.tar.gz rneovim-56bfdd79346fd71fb0b587f8183c1cc3a0ddbae1.tar.bz2 rneovim-56bfdd79346fd71fb0b587f8183c1cc3a0ddbae1.zip |
Merge #4265 'vim-patch:7.4.925'.
Diffstat (limited to 'src/nvim/screen.c')
-rw-r--r-- | src/nvim/screen.c | 39 |
1 files changed, 23 insertions, 16 deletions
diff --git a/src/nvim/screen.c b/src/nvim/screen.c index cd440fe8dc..1cc270023c 100644 --- a/src/nvim/screen.c +++ b/src/nvim/screen.c @@ -6780,8 +6780,8 @@ int showmode(void) if (Recording && edit_submode == NULL /* otherwise it gets too long */ ) { - MSG_PUTS_ATTR(_("recording"), attr); - need_clear = TRUE; + recording_mode(attr); + need_clear = true; } mode_displayed = TRUE; @@ -6820,26 +6820,33 @@ static void msg_pos_mode(void) msg_row = Rows - 1; } -/* - * Delete mode message. Used when ESC is typed which is expected to end - * Insert mode (but Insert mode didn't end yet!). - * Caller should check "mode_displayed". - */ -void unshowmode(int force) +/// Delete mode message. Used when ESC is typed which is expected to end +/// Insert mode (but Insert mode didn't end yet!). +/// Caller should check "mode_displayed". +void unshowmode(bool force) { - /* - * Don't delete it right now, when not redrawing or inside a mapping. - */ - if (!redrawing() || (!force && char_avail() && !KeyTyped)) - redraw_cmdline = TRUE; /* delete mode later */ - else { + // Don't delete it right now, when not redrawing or inside a mapping. + if (!redrawing() || (!force && char_avail() && !KeyTyped)) { + redraw_cmdline = true; // delete mode later + } else { msg_pos_mode(); - if (Recording) - MSG_PUTS_ATTR(_("recording"), hl_attr(HLF_CM)); + if (Recording) { + recording_mode(hl_attr(HLF_CM)); + } msg_clr_eos(); } } +static void recording_mode(int attr) +{ + MSG_PUTS_ATTR(_("recording"), attr); + if (!shortmess(SHM_RECORDING)) { + char_u s[4]; + vim_snprintf((char *)s, ARRAY_SIZE(s), " @%c", Recording); + MSG_PUTS_ATTR(s, attr); + } +} + /* * Draw the tab pages line at the top of the Vim window. */ |