mirror of
https://github.com/neovim/neovim.git
synced 2025-10-16 14:56:08 +00:00
vim-patch:9.0.1518: search stats not always visible when searching backwards (#23517)
Problem: Search stats not always visible when searching backwards.
Solution: Do not display the top/bot message on top of the search stats.
(Christian Brabandt, closes vim/vim#12322, closes vim/vim#12222)
34a6a3617b
Co-authored-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
@@ -913,19 +913,22 @@ int searchit(win_T *win, buf_T *buf, pos_T *pos, pos_T *end_pos, Direction dir,
|
||||
|| found || loop) {
|
||||
break;
|
||||
}
|
||||
//
|
||||
|
||||
// If 'wrapscan' is set we continue at the other end of the file.
|
||||
// If 'shortmess' does not contain 's', we give a message.
|
||||
// If 'shortmess' does not contain 's', we give a message, but
|
||||
// only, if we won't show the search stat later anyhow,
|
||||
// (so SEARCH_COUNT must be absent).
|
||||
// This message is also remembered in keep_msg for when the screen
|
||||
// is redrawn. The keep_msg is cleared whenever another message is
|
||||
// written.
|
||||
//
|
||||
if (dir == BACKWARD) { // start second loop at the other end
|
||||
lnum = buf->b_ml.ml_line_count;
|
||||
} else {
|
||||
lnum = 1;
|
||||
}
|
||||
if (!shortmess(SHM_SEARCH) && (options & SEARCH_MSG)) {
|
||||
if (!shortmess(SHM_SEARCH)
|
||||
&& shortmess(SHM_SEARCHCOUNT)
|
||||
&& (options & SEARCH_MSG)) {
|
||||
give_warning(_(dir == BACKWARD ? top_bot_msg : bot_top_msg), true);
|
||||
}
|
||||
if (extra_arg != NULL) {
|
||||
@@ -2702,8 +2705,10 @@ static void update_search_stat(int dirc, pos_T *pos, pos_T *cursor_pos, searchst
|
||||
lbuf = curbuf;
|
||||
}
|
||||
|
||||
// when searching backwards and having jumped to the first occurrence,
|
||||
// cur must remain greater than 1
|
||||
if (equalpos(lastpos, *cursor_pos) && !wraparound
|
||||
&& (dirc == 0 || dirc == '/' ? cur < cnt : cur > 0)) {
|
||||
&& (dirc == 0 || dirc == '/' ? cur < cnt : cur > 1)) {
|
||||
cur += dirc == 0 ? 0 : dirc == '/' ? 1 : -1;
|
||||
} else {
|
||||
proftime_T start;
|
||||
|
Reference in New Issue
Block a user