changeset 36070:7e690bd1a27d v9.1.0705

patch 9.1.0705: Sorting of fuzzy filename completion is not stable Commit: https://github.com/vim/vim/commit/58d705238c0794ee3baa4173831ab157e709a48a Author: zeertzjq <zeertzjq@outlook.com> Date: Sat Aug 31 17:05:39 2024 +0200 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 <zeertzjq@outlook.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
author Christian Brabandt <cb@256bit.org>
date Sat, 31 Aug 2024 17:15:04 +0200
parents b1b2ad720519
children 792cc316a25d
files src/insexpand.c src/search.c src/testdir/dumps/Test_pum_highlights_15.dump src/testdir/test_popup.vim src/version.c
diffstat 5 files changed, 7 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/src/insexpand.c
+++ b/src/insexpand.c
@@ -3546,7 +3546,8 @@ static int compare_scores(const void *a,
     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);
 }
 
 /*
--- 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)
--- 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
--- 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, "\<ESC>S/non_exit_folder\<C-X>\<C-F>")
+  call term_sendkeys(buf, "\<ESC>S/non_existing_folder\<C-X>\<C-F>")
   call TermWait(buf, 50)
   call VerifyScreenDump(buf, 'Test_pum_highlights_15', {})
 
--- a/src/version.c
+++ b/src/version.c
@@ -705,6 +705,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    705,
+/**/
     704,
 /**/
     703,