From f3982ad3f3bc866c9369edfbd4125aaa092215a9 Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Sat, 10 Feb 2024 21:31:44 +0800 Subject: vim-patch:9.1.0093: Still a qsort() comparison function that returns result of subtraction Problem: Still a qsort() comparison function fuzzy_match_item_compare() that returns result of subtraction (after 9.1.0089). Solution: Use an explicit comparison instead of subtraction. (zeertzjq) closes: vim/vim#14004 https://github.com/vim/vim/commit/77078276bfe695070441a1bbdc02949d31de8922 --- src/nvim/search.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/nvim/search.c b/src/nvim/search.c index f666b07c72..48e41c290d 100644 --- a/src/nvim/search.c +++ b/src/nvim/search.c @@ -3197,7 +3197,11 @@ static int fuzzy_match_item_compare(const void *const s1, const void *const s2) const int idx1 = ((const fuzzyItem_T *)s1)->idx; const int idx2 = ((const fuzzyItem_T *)s2)->idx; - return v1 == v2 ? (idx1 - idx2) : v1 > v2 ? -1 : 1; + if (v1 == v2) { + return idx1 == idx2 ? 0 : idx1 > idx2 ? 1 : -1; + } else { + return v1 > v2 ? -1 : 1; + } } /// Fuzzy search the string "str" in a list of "items" and return the matching -- cgit