path: root/compat/mingw.c
diff options
authorJunio C Hamano <>2019-10-09 05:00:59 (GMT)
committerJunio C Hamano <>2019-10-09 05:00:59 (GMT)
commit772cad0afb834b9af8ee56511dc3df4d6e2f011d (patch)
treebf4f9f9be0c01cfb4b4adb41dfda0ccb3fc1ba99 /compat/mingw.c
parent424663d9c822454cc605c5bab22afdc8475de031 (diff)
parent2049b8dc65e7371c56452cfda5234182d58b704e (diff)
Merge branch 'js/diff-rename-force-stable-sort'
The rename detection logic sorts a list of rename source candidates by similarity to pick the best candidate, which means that a tie between sources with the same similarity is broken by the original location in the original candidate list (which is sorted by path). Force the sorting by similarity done with a stable sort, which is not promised by system supplied qsort(3), to ensure consistent results across platforms. * js/diff-rename-force-stable-sort: diffcore_rename(): use a stable sort Move git_sort(), a stable sort, into into libgit.a
Diffstat (limited to 'compat/mingw.c')
1 files changed, 3 insertions, 8 deletions
diff --git a/compat/mingw.c b/compat/mingw.c
index 7a0d619..06566c8 100644
--- a/compat/mingw.c
+++ b/compat/mingw.c
@@ -1236,11 +1236,6 @@ static int wenvcmp(const void *a, const void *b)
return _wcsnicmp(p, q, p_len);
-/* We need a stable sort to convert the environment between UTF-16 <-> UTF-8 */
-#include "qsort.c"
* Build an environment block combining the inherited environment
* merged with the given list of settings.
@@ -1279,8 +1274,8 @@ static wchar_t *make_environment_block(char **deltaenv)
* If there is a deltaenv, let's accumulate all keys into `array`,
- * sort them using the stable git_qsort() and then copy, skipping
- * duplicate keys
+ * sort them using the stable git_stable_qsort() and then copy,
+ * skipping duplicate keys
for (p = wenv; p && *p; ) {
ALLOC_GROW(array, nr + 1, alloc);
@@ -1303,7 +1298,7 @@ static wchar_t *make_environment_block(char **deltaenv)
p += wlen + 1;
- git_qsort(array, nr, sizeof(*array), wenvcmp);
+ git_stable_qsort(array, nr, sizeof(*array), wenvcmp);
ALLOC_ARRAY(result, size + delta_size);
for (p = result, i = 0; i < nr; i++) {