Added
Link Here
|
0 |
- |
1 |
--- src/sort_r.h.orig 2014-10-09 23:00:44 UTC |
|
|
2 |
+++ src/sort_r.h |
3 |
@@ -24,10 +24,11 @@ void sort_r(void *base, size_t nel, size_t width, |
4 |
defined OpenBSD3_1 || defined OpenBSD3_9 || defined __OpenBSD__ || \ |
5 |
defined __NetBSD__ || \ |
6 |
defined __DragonFly__ || \ |
7 |
- defined AMIGA) |
8 |
+ defined AMIGA) && !defined(qsort_r) |
9 |
# define _SORT_R_BSD |
10 |
#elif (defined _GNU_SOURCE || defined __gnu_hurd__ || defined __GNU__ || \ |
11 |
- defined __linux__ || defined __MINGW32__ || defined __GLIBC__) |
12 |
+ defined __linux__ || defined __MINGW32__ || defined __GLIBC__) || \ |
13 |
+ defined(qsort_r) |
14 |
# define _SORT_R_LINUX |
15 |
#elif (defined _WIN32 || defined _WIN64 || defined __WINDOWS__) |
16 |
# define _SORT_R_WINDOWS |
17 |
@@ -64,7 +65,7 @@ void sort_r(void *base, size_t nel, size_t width, |
18 |
#if defined _SORT_R_BSD |
19 |
|
20 |
/* BSD requires argument swap */ |
21 |
- extern void qsort_r(void *base, size_t nel, size_t width, void *thunk, |
22 |
+ extern void (qsort_r)(void *base, size_t nel, size_t width, void *thunk, |
23 |
int (*compar)(void *_thunk, const void *_a, const void *_b)); |
24 |
|
25 |
struct sort_r_data |
26 |
@@ -82,7 +83,7 @@ void sort_r(void *base, size_t nel, size_t width, |
27 |
#elif defined _SORT_R_LINUX |
28 |
|
29 |
typedef int(* __compar_d_fn_t)(const void *, const void *, void *); |
30 |
- extern void qsort_r(void *base, size_t nel, size_t width, |
31 |
+ extern void (qsort_r)(void *base, size_t nel, size_t width, |
32 |
__compar_d_fn_t __compar, void *arg) |
33 |
__attribute__((nonnull (1, 4))); |
34 |
|