From: Heiko Schlittermann (HS12-RIPE) Date: Tue, 1 Mar 2016 23:14:28 +0000 (+0100) Subject: Make qsort() in readconf.c more portable X-Git-Tag: exim-4_87_RC5~3 X-Git-Url: https://git.exim.org/exim.git/commitdiff_plain/84bbb4d8164aae21a8e5418250359637d8aabc29 Make qsort() in readconf.c more portable --- diff --git a/src/src/functions.h b/src/src/functions.h index a4c791f10..97af70cee 100644 --- a/src/src/functions.h +++ b/src/src/functions.h @@ -419,7 +419,7 @@ extern uschar *string_append_listele(uschar *, uschar, const uschar *); extern uschar *string_append_listele_n(uschar *, uschar, const uschar *, unsigned); extern uschar *string_base62(unsigned long int); extern uschar *string_cat(uschar *, int *, int *, const uschar *, int); -extern int string_compare_by_pointer(const uschar **, const uschar **); +extern int string_compare_by_pointer(const void *, const void *); extern uschar *string_copy_dnsdomain(uschar *); extern uschar *string_copy_malloc(const uschar *); extern uschar *string_copylc(const uschar *); diff --git a/src/src/readconf.c b/src/src/readconf.c index 92160c8f2..8844ca73a 100644 --- a/src/src/readconf.c +++ b/src/src/readconf.c @@ -2715,7 +2715,7 @@ if (type == NULL) size_t n; for (p = USS environ; *p; p++) ; n = p - USS environ; - qsort(environ, p - USS environ, sizeof(*p), (__compar_fn_t) string_compare_by_pointer); + qsort(environ, p - USS environ, sizeof(*p), string_compare_by_pointer); for (p = USS environ; *p; p++) { diff --git a/src/src/string.c b/src/src/string.c index 1c4ba121c..be5a8deda 100644 --- a/src/src/string.c +++ b/src/src/string.c @@ -1713,9 +1713,9 @@ for -bP environment output, needs a function to compare two pointers to string pointers. Here it is. */ int -string_compare_by_pointer(const uschar **a, const uschar **b) +string_compare_by_pointer(const void *a, const void *b) { -return Ustrcmp(CUS *a, CUS *b); +return Ustrcmp(CUSS *(const char**) a, CUSS *(const char**) b); } #endif /* COMPILE_UTILITY */