0
0
mirror of https://github.com/vim/vim.git synced 2025-07-26 11:04:33 -04:00

patch 8.1.1283: delaying half a second after the top-bot message

Problem:    Delaying half a second after the top-bot message.
Solution:   Instead of the delay add "W" to the search count.
This commit is contained in:
Bram Moolenaar 2019-05-06 21:37:18 +02:00
parent 91882cf712
commit c7a10b35de
3 changed files with 23 additions and 6 deletions

View File

@ -26,7 +26,7 @@ static void show_pat_in_path(char_u *, int,
#ifdef FEAT_VIMINFO #ifdef FEAT_VIMINFO
static void wvsp_one(FILE *fp, int idx, char *s, int sc); static void wvsp_one(FILE *fp, int idx, char *s, int sc);
#endif #endif
static void search_stat(int dirc, pos_T *pos, char_u *msgbuf); static void search_stat(int dirc, pos_T *pos, int show_top_bot_msg, char_u *msgbuf);
/* /*
* This file contains various searching-related routines. These fall into * This file contains various searching-related routines. These fall into
@ -1294,6 +1294,8 @@ do_search(
*/ */
for (;;) for (;;)
{ {
int show_top_bot_msg = FALSE;
searchstr = pat; searchstr = pat;
dircp = NULL; dircp = NULL;
/* use previous pattern */ /* use previous pattern */
@ -1524,7 +1526,7 @@ do_search(
if (!shortmess(SHM_SEARCH) if (!shortmess(SHM_SEARCH)
&& ((dirc == '/' && LT_POS(pos, curwin->w_cursor)) && ((dirc == '/' && LT_POS(pos, curwin->w_cursor))
|| (dirc == '?' && LT_POS(curwin->w_cursor, pos)))) || (dirc == '?' && LT_POS(curwin->w_cursor, pos))))
ui_delay(500L, FALSE); // leave some time for top_bot_msg show_top_bot_msg = TRUE;
if (c == FAIL) if (c == FAIL)
{ {
@ -1581,7 +1583,7 @@ do_search(
&& c != FAIL && c != FAIL
&& !shortmess(SHM_SEARCHCOUNT) && !shortmess(SHM_SEARCHCOUNT)
&& msgbuf != NULL) && msgbuf != NULL)
search_stat(dirc, &pos, msgbuf); search_stat(dirc, &pos, show_top_bot_msg, msgbuf);
/* /*
* The search command can be followed by a ';' to do another search. * The search command can be followed by a ';' to do another search.
@ -4911,6 +4913,7 @@ linewhite(linenr_T lnum)
search_stat( search_stat(
int dirc, int dirc,
pos_T *pos, pos_T *pos,
int show_top_bot_msg,
char_u *msgbuf) char_u *msgbuf)
{ {
int save_ws = p_ws; int save_ws = p_ws;
@ -4979,8 +4982,9 @@ search_stat(
} }
if (cur > 0) if (cur > 0)
{ {
#define STAT_BUF_LEN 10 #define STAT_BUF_LEN 12
char t[STAT_BUF_LEN] = ""; char t[STAT_BUF_LEN] = "";
int len;
#ifdef FEAT_RIGHTLEFT #ifdef FEAT_RIGHTLEFT
if (curwin->w_p_rl && *curwin->w_p_rlc == 's') if (curwin->w_p_rl && *curwin->w_p_rlc == 's')
@ -5006,7 +5010,15 @@ search_stat(
else else
vim_snprintf(t, STAT_BUF_LEN, "[%d/%d]", cur, cnt); vim_snprintf(t, STAT_BUF_LEN, "[%d/%d]", cur, cnt);
} }
mch_memmove(msgbuf + STRLEN(msgbuf) - STRLEN(t), t, STRLEN(t));
len = STRLEN(t);
if (show_top_bot_msg && len + 3 < STAT_BUF_LEN)
{
STRCPY(t + len, " W");
len += 2;
}
mch_memmove(msgbuf + STRLEN(msgbuf) - len, t, len);
if (dirc == '?' && cur == 100) if (dirc == '?' && cur == 100)
cur = -1; cur = -1;

View File

@ -3,6 +3,8 @@
" This test is fragile, it might not work interactively, but it works when run " This test is fragile, it might not work interactively, but it works when run
" as test! " as test!
source shared.vim
func! Test_search_stat() func! Test_search_stat()
new new
set shortmess-=S set shortmess-=S
@ -79,7 +81,7 @@ func! Test_search_stat()
set norl set norl
endif endif
" 9) normal, back at top " 9) normal, back at bottom
call cursor(1,1) call cursor(1,1)
let @/ = 'foobar' let @/ = 'foobar'
let pat = '?foobar\s\+' let pat = '?foobar\s\+'
@ -87,6 +89,7 @@ func! Test_search_stat()
let stat = '\[20/20\]' let stat = '\[20/20\]'
call assert_match(pat .. stat, g:a) call assert_match(pat .. stat, g:a)
call assert_match('search hit TOP, continuing at BOTTOM', g:a) call assert_match('search hit TOP, continuing at BOTTOM', g:a)
call assert_match('\[20/20\] W', Screenline(&lines))
" 10) normal, no match " 10) normal, no match
call cursor(1,1) call cursor(1,1)

View File

@ -767,6 +767,8 @@ static char *(features[]) =
static int included_patches[] = static int included_patches[] =
{ /* Add new patch number below this line */ { /* Add new patch number below this line */
/**/
1283,
/**/ /**/
1282, 1282,
/**/ /**/