diff options
author | Bram Moolenaar <Bram@vim.org> | 2016-04-02 19:39:16 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2016-04-02 19:39:16 +0200 |
commit | fd773e9e88add7d1ffef890fb9f3a00d613b4326 (patch) | |
tree | 2dea278681e15b36135ce8f89bd1e8eae006cab1 | |
parent | 8bc189e81aa98ba4aebb03a9dc9527a210fce816 (diff) | |
download | vim-fd773e9e88add7d1ffef890fb9f3a00d613b4326.zip |
patch 7.4.1696
Problem: When using :stopinsert in a silent mapping the "INSERT" message
isn't cleared. (Coacher)
Solution: Always clear the message. (Christian Brabandt, closes #718)
-rw-r--r-- | src/ex_docmd.c | 1 | ||||
-rw-r--r-- | src/proto/screen.pro | 1 | ||||
-rw-r--r-- | src/screen.c | 19 | ||||
-rw-r--r-- | src/version.c | 2 |
4 files changed, 17 insertions, 6 deletions
diff --git a/src/ex_docmd.c b/src/ex_docmd.c index 26f421952..e5de37985 100644 --- a/src/ex_docmd.c +++ b/src/ex_docmd.c @@ -10040,6 +10040,7 @@ ex_stopinsert(exarg_T *eap UNUSED) { restart_edit = 0; stop_insert_mode = TRUE; + clearmode(); } /* diff --git a/src/proto/screen.pro b/src/proto/screen.pro index aad8187a1..f8b14c49a 100644 --- a/src/proto/screen.pro +++ b/src/proto/screen.pro @@ -47,6 +47,7 @@ int screen_ins_lines(int off, int row, int line_count, int end, win_T *wp); int screen_del_lines(int off, int row, int line_count, int end, int force, win_T *wp); int showmode(void); void unshowmode(int force); +void clearmode(void); void get_trans_bufname(buf_T *buf); int redrawing(void); int messaging(void); diff --git a/src/screen.c b/src/screen.c index 9d854a225..77fb3b94c 100644 --- a/src/screen.c +++ b/src/screen.c @@ -10184,12 +10184,19 @@ unshowmode(int force) if (!redrawing() || (!force && char_avail() && !KeyTyped)) redraw_cmdline = TRUE; /* delete mode later */ else - { - msg_pos_mode(); - if (Recording) - recording_mode(hl_attr(HLF_CM)); - msg_clr_eos(); - } + clearmode(); +} + +/* + * Clear the mode message. + */ + void +clearmode() +{ + msg_pos_mode(); + if (Recording) + recording_mode(hl_attr(HLF_CM)); + msg_clr_eos(); } static void diff --git a/src/version.c b/src/version.c index e7235c158..ab2cc39a4 100644 --- a/src/version.c +++ b/src/version.c @@ -749,6 +749,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1696, +/**/ 1695, /**/ 1694, |