aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/search.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/nvim/search.c')
-rw-r--r--src/nvim/search.c18
1 files changed, 10 insertions, 8 deletions
diff --git a/src/nvim/search.c b/src/nvim/search.c
index 30653cbe63..756a4c5255 100644
--- a/src/nvim/search.c
+++ b/src/nvim/search.c
@@ -3689,15 +3689,15 @@ bool search_for_fuzzy_match(buf_T *buf, pos_T *pos, char *pattern, int dir, pos_
current_pos.lnum += dir;
}
- while (true) {
- if (buf == curbuf) {
- circly_end = *start_pos;
- } else {
- circly_end.lnum = buf->b_ml.ml_line_count;
- circly_end.col = 0;
- circly_end.coladd = 0;
- }
+ if (buf == curbuf) {
+ circly_end = *start_pos;
+ } else {
+ circly_end.lnum = buf->b_ml.ml_line_count;
+ circly_end.col = 0;
+ circly_end.coladd = 0;
+ }
+ while (true) {
// Check if looped around and back to start position
if (looped_around && equalpos(current_pos, circly_end)) {
break;
@@ -3717,6 +3717,8 @@ bool search_for_fuzzy_match(buf_T *buf, pos_T *pos, char *pattern, int dir, pos_
if (found_new_match) {
*pos = current_pos;
break;
+ } else if (looped_around && current_pos.lnum == circly_end.lnum) {
+ break;
}
} else {
if (fuzzy_match_str(*ptr, pattern) > 0) {