#include <ccan/asort/asort.h>
#include <stdlib.h>
-#if HAVE_NESTED_FUNCTIONS
-void _asort(void *base, size_t nmemb, size_t size,
- int(*compar)(const void *, const void *, const void *ctx),
- const void *ctx)
-{
- /* This gives bogus "warning: no previous prototype for ‘cmp’"
- * with gcc 4 with -Wmissing-prototypes. Hence the auto crap. */
- auto int cmp(const void *a, const void *b);
- int cmp(const void *a, const void *b)
- {
- return compar(a, b, ctx);
- }
- qsort(base, nmemb, size, cmp);
-}
-#else
+#if !HAVE_QSORT_R_PRIVATE_LAST
+
/* Steal glibc's code. */
/* Copyright (C) 1991,1992,1996,1997,1999,2004 Free Software Foundation, Inc.
void
_asort (void *const pbase, size_t total_elems, size_t size,
- int(*cmp)(const void *, const void *, const void *arg),
- const void *arg)
+ int(*cmp)(const void *, const void *, void *arg),
+ void *arg)
{
register char *base_ptr = (char *) pbase;
}
}
}
-#endif /* !HAVE_NESTED_FUNCTIONS */
+
+#endif /* !HAVE_QSORT_R_PRIVATE_LAST */