diff --git a/src/backend/tsearch/ts_utils.c b/src/backend/tsearch/ts_utils.c index ed16a2e25a..920fbaafc4 100644 --- a/src/backend/tsearch/ts_utils.c +++ b/src/backend/tsearch/ts_utils.c @@ -134,7 +134,16 @@ readstoplist(const char *fname, StopList *s, char *(*wordop) (const char *)) /* Sort to allow binary searching */ if (s->stop && s->len > 0) - qsort(s->stop, s->len, sizeof(char *), pg_qsort_strcmp); + qsort_strcmp(s->stop, s->len, sizeof(char *)); +} + +/* + * qsort comparator wrapper for strcmp. + */ +static int +strcmp_cmp(const void *a, const void *b) +{ + return strcmp(*(const char *const *) a, *(const char *const *) b); } bool @@ -142,5 +151,5 @@ searchstoplist(StopList *s, char *key) { return (s->stop && s->len > 0 && bsearch(&key, s->stop, s->len, - sizeof(char *), pg_qsort_strcmp)) ? true : false; + sizeof(char *), strcmp_cmp)) ? true : false; } diff --git a/src/backend/utils/misc/guc-file.l b/src/backend/utils/misc/guc-file.l index 7885a169bb..7f0719b64c 100644 --- a/src/backend/utils/misc/guc-file.l +++ b/src/backend/utils/misc/guc-file.l @@ -1072,7 +1072,7 @@ ParseConfigDirectory(const char *includedir, { int i; - qsort(filenames, num_filenames, sizeof(char *), pg_qsort_strcmp); + qsort_strcmp(filenames, num_filenames, sizeof(char *)); for (i = 0; i < num_filenames; i++) { if (!ParseConfigFile(filenames[i], true, diff --git a/src/include/port.h b/src/include/port.h index 6486db9fdd..441f0c485d 100644 --- a/src/include/port.h +++ b/src/include/port.h @@ -496,9 +496,10 @@ extern int pqGethostbyname(const char *name, struct hostent **result, int *herrno); +/* port/qsort.c */ extern void pg_qsort(void *base, size_t nel, size_t elsize, int (*cmp) (const void *, const void *)); -extern int pg_qsort_strcmp(const void *a, const void *b); +extern void qsort_strcmp(void *base, size_t nel, size_t elsize); #define qsort(a,b,c,d) pg_qsort(a,b,c,d) diff --git a/src/port/qsort.c b/src/port/qsort.c index 7879e6cd56..ca30df5bc6 100644 --- a/src/port/qsort.c +++ b/src/port/qsort.c @@ -12,11 +12,11 @@ #define ST_DEFINE #include "lib/sort_template.h" -/* - * qsort comparator wrapper for strcmp. - */ -int -pg_qsort_strcmp(const void *a, const void *b) -{ - return strcmp(*(const char *const *) a, *(const char *const *) b); -} +#define ST_SORT qsort_strcmp +#define ST_ELEMENT_TYPE_VOID +#define ST_COMPARE(a, b) \ + strcmp(*(const char *const *) (a), *(const char *const *) (b)) +#define ST_SCOPE extern +#define ST_DECLARE +#define ST_DEFINE +#include "lib/sort_template.h"