aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/libposixplz/qsortr.c1
-rw-r--r--src/sysdeps/tryqsortr_freebsd.c14
-rw-r--r--src/sysdeps/tryqsortr_posix.c14
3 files changed, 21 insertions, 8 deletions
diff --git a/src/libposixplz/qsortr.c b/src/libposixplz/qsortr.c
index 5fa7dd1..5d95ec4 100644
--- a/src/libposixplz/qsortr.c
+++ b/src/libposixplz/qsortr.c
@@ -1,6 +1,7 @@
/* ISC license. */
#include <skalibs/sysdeps.h>
+#include <skalibs/nonposix.h>
#include <stdlib.h>
diff --git a/src/sysdeps/tryqsortr_freebsd.c b/src/sysdeps/tryqsortr_freebsd.c
index 6bf090a..41ed2fc 100644
--- a/src/sysdeps/tryqsortr_freebsd.c
+++ b/src/sysdeps/tryqsortr_freebsd.c
@@ -1,19 +1,25 @@
/* ISC license. */
+#undef _POSIX_C_SOURCE
+#undef _XOPEN_SOURCE
+#ifndef _BSD_SOURCE
+#define _BSD_SOURCE
+#endif
+
#include <stdlib.h>
static int f (void const *a, void const *b, void *c)
{
- int aa = *(int *)a ;
- int bb = *(int *)b ;
+ int aa = *(int const *)a ;
+ int bb = *(int const *)b ;
(void)c ;
return aa < bb ? -1 : aa > bb ;
}
int main (void)
{
- char *x = "blah" ;
+ char *arg = "blah" ;
int x[2] = { 2, 1 } ;
- qsort_r(x, 2, sizeof(int), x, &f) ;
+ qsort_r(x, 2, sizeof(int), arg, &f) ;
return 0 ;
}
diff --git a/src/sysdeps/tryqsortr_posix.c b/src/sysdeps/tryqsortr_posix.c
index 63c1d60..81af081 100644
--- a/src/sysdeps/tryqsortr_posix.c
+++ b/src/sysdeps/tryqsortr_posix.c
@@ -1,19 +1,25 @@
/* ISC license. */
+#undef _POSIX_C_SOURCE
+#undef _XOPEN_SOURCE
+#ifndef _GNU_SOURCE
+#define _GNU_SOURCE
+#endif
+
#include <stdlib.h>
static int f (void const *a, void const *b, void *c)
{
- int aa = *(int *)a ;
- int bb = *(int *)b ;
+ int aa = *(int const *)a ;
+ int bb = *(int const *)b ;
(void)c ;
return aa < bb ? -1 : aa > bb ;
}
int main (void)
{
- char *x = "blah" ;
+ char *arg = "blah" ;
int x[2] = { 2, 1 } ;
- qsort_r(x, 2, sizeof(int), &f, x) ;
+ qsort_r(x, 2, sizeof(int), &f, arg) ;
return 0 ;
}