From 58d705238c0794ee3baa4173831ab157e709a48a Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Sat, 31 Aug 2024 17:05:39 +0200 Subject: [PATCH] patch 9.1.0705: Sorting of fuzzy filename completion is not stable Problem: Sorting of fuzzy filename completion is not stable Solution: Compare indexes when scores are equal. Fix some typos. (zeertzjq) closes: #15593 Signed-off-by: zeertzjq Signed-off-by: Christian Brabandt --- src/insexpand.c | 3 ++- src/search.c | 2 +- src/testdir/dumps/Test_pum_highlights_15.dump | 2 +- src/testdir/test_popup.vim | 2 +- src/version.c | 2 ++ 5 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/insexpand.c b/src/insexpand.c index af818d4ad3..d424fff007 100644 --- a/src/insexpand.c +++ b/src/insexpand.c @@ -3546,7 +3546,8 @@ static int compare_scores(const void *a, const void *b) int idx_b = *(const int *)b; int score_a = compl_fuzzy_scores[idx_a]; int score_b = compl_fuzzy_scores[idx_b]; - return (score_a > score_b) ? -1 : (score_a < score_b) ? 1 : 0; + return score_a == score_b ? (idx_a == idx_b ? 0 : (idx_a < idx_b ? -1 : 1)) + : (score_a > score_b ? -1 : 1); } /* diff --git a/src/search.c b/src/search.c index e5936d8294..a7fd44e680 100644 --- a/src/search.c +++ b/src/search.c @@ -5217,7 +5217,7 @@ search_for_fuzzy_match( { pos_T current_pos = *pos; pos_T circly_end; - int found_new_match = FAIL; + int found_new_match = FALSE; int looped_around = FALSE; if (whole_line) diff --git a/src/testdir/dumps/Test_pum_highlights_15.dump b/src/testdir/dumps/Test_pum_highlights_15.dump index e923b439a3..199f753af1 100644 --- a/src/testdir/dumps/Test_pum_highlights_15.dump +++ b/src/testdir/dumps/Test_pum_highlights_15.dump @@ -1,4 +1,4 @@ -|/+0&#ffffff0|n|o|n|_|e|x|i|t|_|f|o|l|d|e|r> @58 +|/+0&#ffffff0|n|o|n|_|e|x|i|s|t|i|n|g|_|f|o|l|d|e|r> @54 |~+0#4040ff13&| @73 |~| @73 |~| @73 diff --git a/src/testdir/test_popup.vim b/src/testdir/test_popup.vim index fe958da0e2..caec8ff0f5 100644 --- a/src/testdir/test_popup.vim +++ b/src/testdir/test_popup.vim @@ -1494,7 +1494,7 @@ func Test_pum_highlights_match() call VerifyScreenDump(buf, 'Test_pum_highlights_11', {}) " issue #15357 - call term_sendkeys(buf, "\S/non_exit_folder\\") + call term_sendkeys(buf, "\S/non_existing_folder\\") call TermWait(buf, 50) call VerifyScreenDump(buf, 'Test_pum_highlights_15', {}) diff --git a/src/version.c b/src/version.c index 44137b736f..6d374eb781 100644 --- a/src/version.c +++ b/src/version.c @@ -704,6 +704,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 705, /**/ 704, /**/