# HG changeset patch # User Christian Brabandt # Date 1459619104 -7200 # Node ID b7eb7bbd71d0f76b3546de300f54e4590fa40019 # Parent a1ace9e4eda895a4b2b2d184fd2b9acfddf84be9 commit https://github.com/vim/vim/commit/fd773e9e88add7d1ffef890fb9f3a00d613b4326 Author: Bram Moolenaar Date: Sat Apr 2 19:39:16 2016 +0200 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 https://github.com/vim/vim/issues/718) diff --git a/src/ex_docmd.c b/src/ex_docmd.c --- 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 --- a/src/proto/screen.pro +++ b/src/proto/screen.pro @@ -47,6 +47,7 @@ int screen_ins_lines(int off, int row, i 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 --- 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 --- 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,