From da2010f40b3fe5a3e5813844f50cc4f9fb536cd4 Mon Sep 17 00:00:00 2001 From: Teodor Sigaev Date: Thu, 31 Mar 2005 15:10:48 +0000 Subject: [PATCH] Fix various comparing functions --- contrib/tsearch2/dict.c | 4 +++- contrib/tsearch2/rank.c | 4 ++-- contrib/tsearch2/ts_cfg.c | 4 +++- contrib/tsearch2/tsvector.c | 2 +- contrib/tsearch2/wparser.c | 4 +++- 5 files changed, 12 insertions(+), 6 deletions(-) diff --git a/contrib/tsearch2/dict.c b/contrib/tsearch2/dict.c index 357097681e5..7bbc996d51f 100644 --- a/contrib/tsearch2/dict.c +++ b/contrib/tsearch2/dict.c @@ -92,7 +92,9 @@ reset_dict(void) static int comparedict(const void *a, const void *b) { - return ((DictInfo *) a)->dict_id - ((DictInfo *) b)->dict_id; + if ( ((DictInfo *) a)->dict_id == ((DictInfo *) b)->dict_id ) + return 0; + return ( ((DictInfo *) a)->dict_id < ((DictInfo *) b)->dict_id ) ? -1 : 1; } DictInfo * diff --git a/contrib/tsearch2/rank.c b/contrib/tsearch2/rank.c index 3c4a3cef089..8dc10e2a426 100644 --- a/contrib/tsearch2/rank.c +++ b/contrib/tsearch2/rank.c @@ -386,7 +386,7 @@ static int compareDocR(const void *a, const void *b) { if (((DocRepresentation *) a)->pos == ((DocRepresentation *) b)->pos) - return 1; + return 0; return (((DocRepresentation *) a)->pos > ((DocRepresentation *) b)->pos) ? 1 : -1; } @@ -654,7 +654,7 @@ static int compareDocWord(const void *a, const void *b) { if (((DocWord *) a)->pos == ((DocWord *) b)->pos) - return 1; + return 0; return (((DocWord *) a)->pos > ((DocWord *) b)->pos) ? 1 : -1; } diff --git a/contrib/tsearch2/ts_cfg.c b/contrib/tsearch2/ts_cfg.c index afebb113199..3c64cb0a932 100644 --- a/contrib/tsearch2/ts_cfg.c +++ b/contrib/tsearch2/ts_cfg.c @@ -186,7 +186,9 @@ reset_cfg(void) static int comparecfg(const void *a, const void *b) { - return ((TSCfgInfo *) a)->id - ((TSCfgInfo *) b)->id; + if ( ((TSCfgInfo *) a)->id == ((TSCfgInfo *) b)->id ) + return 0; + return ( ((TSCfgInfo *) a)->id < ((TSCfgInfo *) b)->id ) ? -1 : 1; } TSCfgInfo * diff --git a/contrib/tsearch2/tsvector.c b/contrib/tsearch2/tsvector.c index a8e1dbfe738..888367c8293 100644 --- a/contrib/tsearch2/tsvector.c +++ b/contrib/tsearch2/tsvector.c @@ -51,7 +51,7 @@ static int comparePos(const void *a, const void *b) { if (((WordEntryPos *) a)->pos == ((WordEntryPos *) b)->pos) - return 1; + return 0; return (((WordEntryPos *) a)->pos > ((WordEntryPos *) b)->pos) ? 1 : -1; } diff --git a/contrib/tsearch2/wparser.c b/contrib/tsearch2/wparser.c index 554c2684b9b..33bfd4d87e8 100644 --- a/contrib/tsearch2/wparser.c +++ b/contrib/tsearch2/wparser.c @@ -93,7 +93,9 @@ reset_prs(void) static int compareprs(const void *a, const void *b) { - return ((WParserInfo *) a)->prs_id - ((WParserInfo *) b)->prs_id; + if ( ((WParserInfo *) a)->prs_id == ((WParserInfo *) b)->prs_id ) + return 0; + return ( ((WParserInfo *) a)->prs_id < ((WParserInfo *) b)->prs_id ) ? -1 : 1; } WParserInfo * -- 2.39.5