Mercurial > vim
changeset 16572:f37255166ff4 v8.1.1289
patch 8.1.1289: may not have enough space to add "W" to search stats
commit https://github.com/vim/vim/commit/b6cb26ffe1795ae62d8235960dccf517c2b2ed45
Author: Bram Moolenaar <Bram@vim.org>
Date: Tue May 7 21:34:37 2019 +0200
patch 8.1.1289: may not have enough space to add "W" to search stats
Problem: May not have enough space to add "W" to search stats.
Solution: Reserve a bit more space. (Christian Brabandt)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Tue, 07 May 2019 21:45:05 +0200 |
parents | ba3c4eaaec90 |
children | 23b28ec23103 |
files | src/search.c src/version.c |
diffstat | 2 files changed, 15 insertions(+), 13 deletions(-) [+] |
line wrap: on
line diff
--- a/src/search.c +++ b/src/search.c @@ -1219,6 +1219,7 @@ do_search( char_u *ps; char_u *msgbuf = NULL; size_t len; +#define SEARCH_STAT_BUF_LEN 12 /* * A line offset is not remembered, this is vi compatible. @@ -1399,8 +1400,8 @@ do_search( else // Use up to 'showcmd' column. len = (int)(Rows - msg_row - 1) * Columns + sc_col - 1; - if (len < STRLEN(p) + 40 + 11) - len = STRLEN(p) + 40 + 11; + if (len < STRLEN(p) + 40 + SEARCH_STAT_BUF_LEN + 1) + len = STRLEN(p) + 40 + SEARCH_STAT_BUF_LEN + 1; } else // Reserve enough space for the search pattern + offset. @@ -4982,37 +4983,36 @@ search_stat( } if (cur > 0) { -#define STAT_BUF_LEN 12 - char t[STAT_BUF_LEN] = ""; + char t[SEARCH_STAT_BUF_LEN] = ""; int len; #ifdef FEAT_RIGHTLEFT if (curwin->w_p_rl && *curwin->w_p_rlc == 's') { if (cur == OUT_OF_TIME) - vim_snprintf(t, STAT_BUF_LEN, "[?/??]"); + vim_snprintf(t, SEARCH_STAT_BUF_LEN, "[?/??]"); else if (cnt > 99 && cur > 99) - vim_snprintf(t, STAT_BUF_LEN, "[>99/>99]"); + vim_snprintf(t, SEARCH_STAT_BUF_LEN, "[>99/>99]"); else if (cnt > 99) - vim_snprintf(t, STAT_BUF_LEN, "[>99/%d]", cur); + vim_snprintf(t, SEARCH_STAT_BUF_LEN, "[>99/%d]", cur); else - vim_snprintf(t, STAT_BUF_LEN, "[%d/%d]", cnt, cur); + vim_snprintf(t, SEARCH_STAT_BUF_LEN, "[%d/%d]", cnt, cur); } else #endif { if (cur == OUT_OF_TIME) - vim_snprintf(t, STAT_BUF_LEN, "[?/??]"); + vim_snprintf(t, SEARCH_STAT_BUF_LEN, "[?/??]"); else if (cnt > 99 && cur > 99) - vim_snprintf(t, STAT_BUF_LEN, "[>99/>99]"); + vim_snprintf(t, SEARCH_STAT_BUF_LEN, "[>99/>99]"); else if (cnt > 99) - vim_snprintf(t, STAT_BUF_LEN, "[%d/>99]", cur); + vim_snprintf(t, SEARCH_STAT_BUF_LEN, "[%d/>99]", cur); else - vim_snprintf(t, STAT_BUF_LEN, "[%d/%d]", cur, cnt); + vim_snprintf(t, SEARCH_STAT_BUF_LEN, "[%d/%d]", cur, cnt); } len = STRLEN(t); - if (show_top_bot_msg && len + 3 < STAT_BUF_LEN) + if (show_top_bot_msg && len + 3 < SEARCH_STAT_BUF_LEN) { STRCPY(t + len, " W"); len += 2;