]> granicus.if.org Git - vim/commitdiff
patch 7.4.2099 v7.4.2099
authorBram Moolenaar <Bram@vim.org>
Sun, 24 Jul 2016 14:17:59 +0000 (16:17 +0200)
committerBram Moolenaar <Bram@vim.org>
Sun, 24 Jul 2016 14:17:59 +0000 (16:17 +0200)
Problem:    When a keymap is active only "(lang)" is displayed. (Ilya
            Dogolazky)
Solution:   Show the keymap name. (Dmitri Vereshchagin, closes #933)

src/buffer.c
src/proto/screen.pro
src/screen.c
src/version.c

index 99d23ec5dfa7289a645662ffb1f9ea5f4120f1b1..8590e2a2e9ca8455c80647071dbb3fadc95056ec 100644 (file)
@@ -4114,7 +4114,7 @@ build_stl_str_hl(
 
        case STL_KEYMAP:
            fillable = FALSE;
-           if (get_keymap_str(wp, tmp, TMPLEN))
+           if (get_keymap_str(wp, (char_u *)"<%s>", tmp, TMPLEN))
                str = tmp;
            break;
        case STL_PAGENUM:
index f8b14c49a91e6d3b36daf32b877d7712f4b76be7..5bc3fbaafee91e596d9f04ebd8d8cd0611a850ab 100644 (file)
@@ -23,7 +23,7 @@ void win_redraw_last_status(frame_T *frp);
 void win_redr_status_matches(expand_T *xp, int num_matches, char_u **matches, int match, int showtail);
 void win_redr_status(win_T *wp);
 int stl_connected(win_T *wp);
-int get_keymap_str(win_T *wp, char_u *buf, int len);
+int get_keymap_str(win_T *wp, char_u *fmt, char_u *buf, int len);
 void screen_putchar(int c, int row, int col, int attr);
 void screen_getbytes(int row, int col, char_u *bytes, int *attrp);
 void screen_puts(char_u *text, int row, int col, int attr);
index 04a0da9eb5befc2115bad2f8f792c7a4c93418d7..ccdf98c583c796e4d915d49d826e5ffd8e92113b 100644 (file)
@@ -6767,7 +6767,7 @@ win_redr_status(win_T *wp)
        screen_fill(row, row + 1, len + W_WINCOL(wp),
                        this_ru_col + W_WINCOL(wp), fillchar, fillchar, attr);
 
-       if (get_keymap_str(wp, NameBuff, MAXPATHL)
+       if (get_keymap_str(wp, (char_u *)"<%s>", NameBuff, MAXPATHL)
                && (int)(this_ru_col - len) > (int)(STRLEN(NameBuff) + 1))
            screen_puts(NameBuff, row, (int)(this_ru_col - STRLEN(NameBuff)
                                                   - 1 + W_WINCOL(wp)), attr);
@@ -6862,6 +6862,7 @@ stl_connected(win_T *wp)
     int
 get_keymap_str(
     win_T      *wp,
+    char_u     *fmt,       /* format string containing one %s item */
     char_u     *buf,       /* buffer for the result */
     int                len)        /* length of buffer */
 {
@@ -6894,9 +6895,7 @@ get_keymap_str(
 #endif
                p = (char_u *)"lang";
        }
-       if ((int)(STRLEN(p) + 3) < len)
-           sprintf((char *)buf, "<%s>", p);
-       else
+       if (vim_snprintf((char *)buf, len, (char *)fmt, p) > len - 1)
            buf[0] = NUL;
 #ifdef FEAT_EVAL
        vim_free(s);
@@ -10166,7 +10165,9 @@ showmode(void)
                        MSG_PUTS_ATTR(_(" Arabic"), attr);
                    else
 # endif
-                       MSG_PUTS_ATTR(_(" (lang)"), attr);
+                       if (get_keymap_str(curwin, (char_u *)" (%s)",
+                                                          NameBuff, MAXPATHL))
+                           MSG_PUTS_ATTR(NameBuff, attr);
                }
 #endif
                if ((State & INSERT) && p_paste)
index 20dd14037ad54dccb16c2084067bae6bc2a3c309..b15681b6aa14e3d4d6721f2f3f9884b511e98bec 100644 (file)
@@ -758,6 +758,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    2099,
 /**/
     2098,
 /**/