X-Git-Url: https://git.ozlabs.org/?p=ccan;a=blobdiff_plain;f=ccan%2Fasort%2Fasort.h;h=5024a057cde5d548fe9986dc5e2abc375190cec6;hp=ffef1f6fe9e394b9697812982cfd46e964436e4f;hb=e8c85e38cc6e0094c8d9e286e1706756035b95e0;hpb=b1c867121f379d76dc7fb7d99bae77e2b7d99841 diff --git a/ccan/asort/asort.h b/ccan/asort/asort.h index ffef1f6f..5024a057 100644 --- a/ccan/asort/asort.h +++ b/ccan/asort/asort.h @@ -1,5 +1,6 @@ #ifndef CCAN_ASORT_H #define CCAN_ASORT_H +#include "config.h" #include #include @@ -18,14 +19,18 @@ */ #define asort(base, num, cmp, ctx) \ _asort((base), (num), sizeof(*(base)), \ - cast_if_type(int (*)(const void *, const void *, const void *), \ - (cmp), \ + cast_if_type(int (*)(const void *, const void *, void *), \ + (cmp), &*(cmp), \ int (*)(const __typeof__(*(base)) *, \ const __typeof__(*(base)) *, \ __typeof__(ctx))), (ctx)) +#if HAVE_QSORT_R_PRIVATE_LAST +#define _asort(b, n, s, cmp, ctx) qsort_r(b, n, s, cmp, ctx) +#else void _asort(void *base, size_t nmemb, size_t size, - int(*compar)(const void *, const void *, const void *), - const void *ctx); + int(*compar)(const void *, const void *, void *), + void *ctx); +#endif #endif /* CCAN_ASORT_H */