summaryrefslogtreecommitdiff
path: root/src/util.c
diff options
context:
space:
mode:
authorEtienne Samson <samson.etienne@gmail.com>2018-08-17 15:56:30 +0000
committerEtienne Samson <samson.etienne@gmail.com>2018-08-24 22:00:05 +0200
commit1a9cc18260b68b149476adb6f39e37ab47d3d21f (patch)
tree532d1f75793b9fde27b1306c09e577ba16d0bc38 /src/util.c
parent8856337b35ad417db9fa5604f76086528cb0436b (diff)
downloadlibgit2-1a9cc18260b68b149476adb6f39e37ab47d3d21f.tar.gz
util: make the qsort_r check work on macOS
This performs a compile-check by using CMake support, to differentiate the GNU version from the BSD version of qsort_r. Module taken from 4f252abea5f1d17c60f6ff115c9c44cc0b6f1df6, which I've checked against CMake 2.8.11.
Diffstat (limited to 'src/util.c')
-rw-r--r--src/util.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/util.c b/src/util.c
index bf778a949..79b362f7f 100644
--- a/src/util.c
+++ b/src/util.c
@@ -647,7 +647,7 @@ size_t git__unescape(char *str)
return (pos - str);
}
-#if defined(HAVE_QSORT_S) || (defined(HAVE_QSORT_R) && defined(BSD))
+#if defined(HAVE_QSORT_S) || defined(HAVE_QSORT_R_BSD)
typedef struct {
git__sort_r_cmp cmp;
void *payload;
@@ -664,10 +664,10 @@ static int GIT_STDLIB_CALL git__qsort_r_glue_cmp(
void git__qsort_r(
void *els, size_t nel, size_t elsize, git__sort_r_cmp cmp, void *payload)
{
-#if defined(HAVE_QSORT_R) && defined(BSD)
+#if defined(HAVE_QSORT_R_BSD)
git__qsort_r_glue glue = { cmp, payload };
qsort_r(els, nel, elsize, &glue, git__qsort_r_glue_cmp);
-#elif defined(HAVE_QSORT_R) && defined(__GLIBC__)
+#elif defined(HAVE_QSORT_R_GNU)
qsort_r(els, nel, elsize, cmp, payload);
#elif defined(HAVE_QSORT_S)
git__qsort_r_glue glue = { cmp, payload };