From 89ee5b89a6e82a6b0a5a44bb5d2776372614e01c Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Fri, 2 Apr 2004 00:41:18 +0000 Subject: [PATCH] Fix some more compatibility issues (ctype.h macros must never be passed signed chars...) --- contrib/tsearch2/dict_syn.c | 4 ++-- contrib/tsearch2/prs_dcfg.c | 16 ++++++++-------- contrib/tsearch2/tsvector.c | 7 ++++--- 3 files changed, 14 insertions(+), 13 deletions(-) diff --git a/contrib/tsearch2/dict_syn.c b/contrib/tsearch2/dict_syn.c index 8364223be4..046a594903 100644 --- a/contrib/tsearch2/dict_syn.c +++ b/contrib/tsearch2/dict_syn.c @@ -37,14 +37,14 @@ findwrd(char *in, char **end) char *start; *end = NULL; - while (*in && isspace(*in)) + while (*in && isspace((unsigned char) *in)) in++; if (!in) return NULL; start = in; - while (*in && !isspace(*in)) + while (*in && !isspace((unsigned char) *in)) in++; *end = in; diff --git a/contrib/tsearch2/prs_dcfg.c b/contrib/tsearch2/prs_dcfg.c index 6b553e4525..0837451f22 100644 --- a/contrib/tsearch2/prs_dcfg.c +++ b/contrib/tsearch2/prs_dcfg.c @@ -66,12 +66,12 @@ parse_cfgdict(text *in, Map ** m) { if (state == CS_WAITKEY) { - if (isalpha(*ptr)) + if (isalpha((unsigned char) *ptr)) { begin = ptr; state = CS_INKEY; } - else if (!isspace(*ptr)) + else if (!isspace((unsigned char) *ptr)) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("syntax error"), @@ -80,7 +80,7 @@ parse_cfgdict(text *in, Map ** m) } else if (state == CS_INKEY) { - if (isspace(*ptr)) + if (isspace((unsigned char) *ptr)) { mptr->key = nstrdup(begin, ptr - begin); state = CS_WAITEQ; @@ -90,7 +90,7 @@ parse_cfgdict(text *in, Map ** m) mptr->key = nstrdup(begin, ptr - begin); state = CS_WAITVALUE; } - else if (!isalpha(*ptr)) + else if (!isalpha((unsigned char) *ptr)) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("syntax error"), @@ -101,7 +101,7 @@ parse_cfgdict(text *in, Map ** m) { if (*ptr == '=') state = CS_WAITVALUE; - else if (!isspace(*ptr)) + else if (!isspace((unsigned char) *ptr)) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("syntax error"), @@ -115,7 +115,7 @@ parse_cfgdict(text *in, Map ** m) begin = ptr + 1; state = CS_INVALUE; } - else if (!isspace(*ptr)) + else if (!isspace((unsigned char) *ptr)) { begin = ptr; state = CS_IN2VALUE; @@ -134,7 +134,7 @@ parse_cfgdict(text *in, Map ** m) } else if (state == CS_IN2VALUE) { - if (isspace(*ptr) || *ptr == ',') + if (isspace((unsigned char) *ptr) || *ptr == ',') { mptr->value = nstrdup(begin, ptr - begin); mptr++; @@ -147,7 +147,7 @@ parse_cfgdict(text *in, Map ** m) { if (*ptr == ',') state = CS_WAITKEY; - else if (!isspace(*ptr)) + else if (!isspace((unsigned char) *ptr)) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("syntax error"), diff --git a/contrib/tsearch2/tsvector.c b/contrib/tsearch2/tsvector.c index cc2e96c225..827627b068 100644 --- a/contrib/tsearch2/tsvector.c +++ b/contrib/tsearch2/tsvector.c @@ -310,7 +310,7 @@ gettoken_tsvector(TI_IN_STATE * state) } else if (state->state == INPOSINFO) { - if (isdigit(*(state->prsbuf))) + if (isdigit((unsigned char) *(state->prsbuf))) { if (state->alen == 0) { @@ -373,9 +373,10 @@ gettoken_tsvector(TI_IN_STATE * state) errmsg("syntax error"))); state->pos[*(uint16 *) (state->pos)].weight = 0; } - else if (isspace(*(state->prsbuf)) || *(state->prsbuf) == '\0') + else if (isspace((unsigned char) *(state->prsbuf)) || + *(state->prsbuf) == '\0') return 1; - else if (!isdigit(*(state->prsbuf))) + else if (!isdigit((unsigned char) *(state->prsbuf))) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("syntax error"))); -- GitLab