diff --git a/contrib/fulltextindex/fti.c b/contrib/fulltextindex/fti.c index bb4636ff3e..75358958c5 100644 --- a/contrib/fulltextindex/fti.c +++ b/contrib/fulltextindex/fti.c @@ -1,7 +1,7 @@ #include "postgres.h" #include "executor/spi.h" #include "commands/trigger.h" -#include /* tolower */ +#include #include /* debugging */ /* @@ -256,10 +256,9 @@ fti(PG_FUNCTION_ARGS) char *string = column; while (*string != '\0') - { /* placed 'really' inline. */ - *string = tolower(*string); /* some compilers will - * choke */ - string++; /* on 'inline' keyword */ + { + *string = tolower((unsigned char) *string); + string++; } data = (struct varlena *) palloc(sizeof(int32) + strlen(column) +1); @@ -312,9 +311,9 @@ breakup(char *string, char *substring) * (ie. 'string$%^&', last_start first points to '&', and after * this to 'g' */ - if (!isalnum((int) *last_start)) + if (!isalnum((unsigned char) *last_start)) { - while (!isalnum((int) *last_start) && + while (!isalnum((unsigned char) *last_start) && last_start > string) last_start--; cur_pos = last_start; @@ -323,7 +322,7 @@ breakup(char *string, char *substring) cur_pos--; /* substrings are at minimum 2 characters * long */ - if (isalnum((int) *cur_pos)) + if (isalnum((unsigned char) *cur_pos)) { /* Houston, we have a substring! :) */ memcpy(substring, cur_pos, last_start - cur_pos + 1); diff --git a/contrib/soundex/soundex.c b/contrib/soundex/soundex.c index f66cb21f24..165202d5ef 100644 --- a/contrib/soundex/soundex.c +++ b/contrib/soundex/soundex.c @@ -1,4 +1,4 @@ -/* $Header: /cvsroot/pgsql/contrib/soundex/Attic/soundex.c,v 1.8 2000/11/20 20:36:57 tgl Exp $ */ +/* $Header: /cvsroot/pgsql/contrib/soundex/Attic/soundex.c,v 1.9 2000/12/03 20:45:31 tgl Exp $ */ #include "postgres.h" #include "fmgr.h" #include "utils/builtins.h" @@ -42,7 +42,7 @@ text_soundex(PG_FUNCTION_ARGS) /* ABCDEFGHIJKLMNOPQRSTUVWXYZ */ static const char *soundex_table = "01230120022455012623010202"; -#define soundex_code(letter) soundex_table[toupper(letter) - 'A'] +#define soundex_code(letter) soundex_table[toupper((unsigned char) (letter)) - 'A'] static void @@ -56,7 +56,7 @@ soundex(const char *instr, char *outstr) outstr[SOUNDEX_LEN] = '\0'; /* Skip leading non-alphabetic characters */ - while (!isalpha(instr[0]) && instr[0]) + while (!isalpha((unsigned char) instr[0]) && instr[0]) ++instr; /* No string left */ @@ -67,12 +67,13 @@ soundex(const char *instr, char *outstr) } /* Take the first letter as is */ - *outstr++ = (char) toupper(*instr++); + *outstr++ = (char) toupper((unsigned char) *instr++); count = 1; while (*instr && count < SOUNDEX_LEN) { - if (isalpha(*instr) && soundex_code(*instr) != soundex_code(*(instr - 1))) + if (isalpha((unsigned char) *instr) && + soundex_code(*instr) != soundex_code(*(instr - 1))) { *outstr = soundex_code(instr[0]); if (*outstr != '0') diff --git a/contrib/spi/preprocessor/step1.c b/contrib/spi/preprocessor/step1.c index 1f2c5380d5..8a5379e8e0 100644 --- a/contrib/spi/preprocessor/step1.c +++ b/contrib/spi/preprocessor/step1.c @@ -6,7 +6,7 @@ strtoupper(char *string) int i; for (i = 0; i < strlen(string); i++) - string[i] = toupper(string[i]); + string[i] = toupper((unsigned char) string[i]); return string; } diff --git a/contrib/spi/refint.c b/contrib/spi/refint.c index d7a8d73c8e..ea8851816f 100644 --- a/contrib/spi/refint.c +++ b/contrib/spi/refint.c @@ -5,7 +5,7 @@ #include "executor/spi.h" /* this is what you need to work with SPI */ #include "commands/trigger.h" /* -"- and triggers */ -#include /* tolower () */ +#include extern Datum check_primary_key(PG_FUNCTION_ARGS); @@ -293,7 +293,7 @@ check_foreign_key(PG_FUNCTION_ARGS) nrefs = pg_atoi(args[0], sizeof(int), 0); if (nrefs < 1) elog(ERROR, "check_foreign_key: %d (< 1) number of references specified", nrefs); - action = tolower(*(args[1])); + action = tolower((unsigned char) *(args[1])); if (action != 'r' && action != 'c' && action != 's') elog(ERROR, "check_foreign_key: invalid action %s", args[1]); nargs -= 2; diff --git a/contrib/spi/timetravel.c b/contrib/spi/timetravel.c index 41e7b092b3..90341e208d 100644 --- a/contrib/spi/timetravel.c +++ b/contrib/spi/timetravel.c @@ -5,7 +5,7 @@ #include "executor/spi.h" /* this is what you need to work with SPI */ #include "commands/trigger.h" /* -"- and triggers */ -#include /* tolower () */ +#include #define ABSTIMEOID 702 /* it should be in pg_type.h */ @@ -376,7 +376,7 @@ set_timetravel(PG_FUNCTION_ARGS) NameGetDatum(relname))); d = TTOff[nTTOff] = malloc(strlen(rname) + 1); while (*s) - *d++ = tolower(*s++); + *d++ = tolower((unsigned char) *s++); *d = 0; pfree(rname); nTTOff++; diff --git a/contrib/string/string_io.c b/contrib/string/string_io.c index c329fec1e9..8c4e5b45e1 100644 --- a/contrib/string/string_io.c +++ b/contrib/string/string_io.c @@ -28,9 +28,10 @@ #define DIGIT(val) ((val) + '0') #define ISOCTAL(c) (((c) >= '0') && ((c) <= '7')) #ifndef ISO8859 -#define NOTPRINTABLE(c) (!isprint(c)) +#define NOTPRINTABLE(c) (!isprint((unsigned char) (c))) #else -#define NOTPRINTABLE(c) (!isprint(c) && ((c) < 0xa0)) +#define NOTPRINTABLE(c) (!isprint((unsigned char) (c)) && \ + ((unsigned char) (c) < (unsigned char) 0xa0)) #endif /* diff --git a/src/backend/commands/define.c b/src/backend/commands/define.c index 63ccf32543..f8c49fd755 100644 --- a/src/backend/commands/define.c +++ b/src/backend/commands/define.c @@ -10,7 +10,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/commands/define.c,v 1.49 2000/11/20 20:36:47 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/commands/define.c,v 1.50 2000/12/03 20:45:33 tgl Exp $ * * DESCRIPTION * The "DefineFoo" routines take the parse tree and pick out the @@ -71,7 +71,7 @@ case_translate_language_name(const char *input, char *output) int i; for (i = 0; i < NAMEDATALEN-1 && input[i]; ++i) - output[i] = tolower(input[i]); + output[i] = tolower((unsigned char) input[i]); output[i] = '\0'; diff --git a/src/backend/commands/proclang.c b/src/backend/commands/proclang.c index 5d4d3f09bf..aead01b973 100644 --- a/src/backend/commands/proclang.c +++ b/src/backend/commands/proclang.c @@ -31,7 +31,7 @@ case_translate_language_name(const char *input, char *output) int i; for (i = 0; i < NAMEDATALEN && input[i]; ++i) - output[i] = tolower(input[i]); + output[i] = tolower((unsigned char) input[i]); output[i] = '\0'; diff --git a/src/backend/commands/sequence.c b/src/backend/commands/sequence.c index e8944f8d98..ca73318dc5 100644 --- a/src/backend/commands/sequence.c +++ b/src/backend/commands/sequence.c @@ -473,9 +473,8 @@ get_seq_name(text *seqin) */ for (; *rawname; rawname++) { - if (isascii((int) *rawname) && - isupper((int) *rawname)) - *rawname = tolower(*rawname); + if (isupper((unsigned char) *rawname)) + *rawname = tolower((unsigned char) *rawname); } } return seqname; diff --git a/src/backend/commands/variable.c b/src/backend/commands/variable.c index 1e12f17c79..4282ee2ae4 100644 --- a/src/backend/commands/variable.c +++ b/src/backend/commands/variable.c @@ -9,7 +9,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/commands/variable.c,v 1.43 2000/10/26 17:31:34 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/commands/variable.c,v 1.44 2000/12/03 20:45:33 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -104,7 +104,7 @@ get_token(char **tok, char **val, char *str) return NULL; /* skip leading white space */ - while (isspace((int) *str)) + while (isspace((unsigned char) *str)) str++; /* end of string? then return NULL */ @@ -118,7 +118,8 @@ get_token(char **tok, char **val, char *str) *tok = str; /* Advance to end of word */ - while (*str && !isspace((int) *str) && *str != ',' && *str != '=') + while (*str && !isspace((unsigned char) *str) && + *str != ',' && *str != '=') str++; /* Terminate word string for caller */ @@ -126,7 +127,7 @@ get_token(char **tok, char **val, char *str) *str = '\0'; /* Skip any whitespace */ - while (isspace((int) ch)) + while (isspace((unsigned char) ch)) ch = *(++str); /* end of string? */ @@ -144,7 +145,7 @@ get_token(char **tok, char **val, char *str) str++; /* skip whitespace after '=' */ - while (isspace((int) *str)) + while (isspace((unsigned char) *str)) str++; if (*str == ',' || *str == '\0') @@ -154,7 +155,7 @@ get_token(char **tok, char **val, char *str) *val = str; /* Advance to end of word */ - while (*str && !isspace((int) *str) && *str != ',') + while (*str && !isspace((unsigned char) *str) && *str != ',') str++; /* Terminate word string for caller */ @@ -162,7 +163,7 @@ get_token(char **tok, char **val, char *str) *str = '\0'; /* Skip any whitespace */ - while (isspace((int) ch)) + while (isspace((unsigned char) ch)) ch = *(++str); /* end of string? */ diff --git a/src/backend/libpq/auth.c b/src/backend/libpq/auth.c index 257ff7d109..1dd98b7935 100644 --- a/src/backend/libpq/auth.c +++ b/src/backend/libpq/auth.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/libpq/auth.c,v 1.49 2000/08/25 10:00:30 petere Exp $ + * $Header: /cvsroot/pgsql/src/backend/libpq/auth.c,v 1.50 2000/12/03 20:45:33 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -23,7 +23,7 @@ #include /* for MAXHOSTNAMELEN on some */ #endif #include -#include /* isspace() declaration */ +#include #include /* needed by in.h on Ultrix */ #include diff --git a/src/backend/nodes/outfuncs.c b/src/backend/nodes/outfuncs.c index 7abca0990e..1c0239246e 100644 --- a/src/backend/nodes/outfuncs.c +++ b/src/backend/nodes/outfuncs.c @@ -6,7 +6,7 @@ * Portions Copyright (c) 1996-2000, PostgreSQL, Inc * Portions Copyright (c) 1994, Regents of the University of California * - * $Header: /cvsroot/pgsql/src/backend/nodes/outfuncs.c,v 1.134 2000/11/16 22:30:23 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/nodes/outfuncs.c,v 1.135 2000/12/03 20:45:33 tgl Exp $ * * NOTES * Every (plan) node in POSTGRES has an associated "out" routine which @@ -70,8 +70,8 @@ _outToken(StringInfo str, char *s) if (*s == '<' || *s == '\"' || *s == '@' || - isdigit((int) *s) || - (*s == '-' && isdigit((int) s[1]))) + isdigit((unsigned char) *s) || + (*s == '-' && isdigit((unsigned char) s[1]))) appendStringInfoChar(str, '\\'); while (*s) { diff --git a/src/backend/nodes/read.c b/src/backend/nodes/read.c index a9eb837851..df8fcb876d 100644 --- a/src/backend/nodes/read.c +++ b/src/backend/nodes/read.c @@ -9,7 +9,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/nodes/read.c,v 1.25 2000/10/31 13:59:52 petere Exp $ + * $Header: /cvsroot/pgsql/src/backend/nodes/read.c,v 1.26 2000/12/03 20:45:33 tgl Exp $ * * HISTORY * AUTHOR DATE MAJOR EVENT @@ -205,8 +205,8 @@ nodeTokenType(char *token, int length) numlen = length; if (*numptr == '+' || *numptr == '-') numptr++, numlen--; - if ((numlen > 0 && isdigit((int) *numptr)) || - (numlen > 1 && *numptr == '.' && isdigit((int) numptr[1]))) + if ((numlen > 0 && isdigit((unsigned char) *numptr)) || + (numlen > 1 && *numptr == '.' && isdigit((unsigned char) numptr[1]))) { /* diff --git a/src/backend/parser/parse_node.c b/src/backend/parser/parse_node.c index 1d846bd4bb..206f850cb1 100644 --- a/src/backend/parser/parse_node.c +++ b/src/backend/parser/parse_node.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/parser/parse_node.c,v 1.49 2000/11/16 22:30:28 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/parser/parse_node.c,v 1.50 2000/12/03 20:45:34 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -533,7 +533,7 @@ fitsInFloat(Value *value) ndigits = 0; for (; *ptr; ptr++) { - if (isdigit((int) *ptr)) + if (isdigit((unsigned char) *ptr)) ndigits++; else if (*ptr == 'e' || *ptr == 'E') break; /* don't count digits in exponent */ diff --git a/src/backend/parser/scan.l b/src/backend/parser/scan.l index 51710c1c39..2c68f0976a 100644 --- a/src/backend/parser/scan.l +++ b/src/backend/parser/scan.l @@ -9,7 +9,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/parser/scan.l,v 1.83 2000/11/16 22:47:44 petere Exp $ + * $Header: /cvsroot/pgsql/src/backend/parser/scan.l,v 1.84 2000/12/03 20:45:34 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -478,9 +478,8 @@ other . ScanKeyword *keyword; for(i = 0; yytext[i]; i++) - if (isascii((int) yytext[i]) && - isupper((int) yytext[i])) - yytext[i] = tolower(yytext[i]); + if (isupper((unsigned char) yytext[i])) + yytext[i] = tolower((unsigned char) yytext[i]); if (i >= NAMEDATALEN) { #ifdef MULTIBYTE diff --git a/src/backend/port/inet_aton.c b/src/backend/port/inet_aton.c index 485772619c..b6cd497439 100644 --- a/src/backend/port/inet_aton.c +++ b/src/backend/port/inet_aton.c @@ -1,4 +1,4 @@ -/* $Id: inet_aton.c,v 1.17 1999/07/17 04:12:09 momjian Exp $ +/* $Id: inet_aton.c,v 1.18 2000/12/03 20:45:34 tgl Exp $ * * This inet_aton() function was taken from the GNU C library and * incorporated into Postgres for those systems which do not have this @@ -83,16 +83,16 @@ inet_aton(const char *cp, struct in_addr * addr) } while ((c = *cp) != '\0') { - if (isascii(c) && isdigit(c)) + if (isdigit((unsigned char) c)) { val = (val * base) + (c - '0'); cp++; continue; } - if (base == 16 && isascii(c) && isxdigit(c)) + if (base == 16 && isxdigit((unsigned char) c)) { val = (val << 4) + - (c + 10 - (islower(c) ? 'a' : 'A')); + (c + 10 - (islower((unsigned char) c) ? 'a' : 'A')); cp++; continue; } @@ -114,10 +114,11 @@ inet_aton(const char *cp, struct in_addr * addr) } /* - * Check for trailing characters. + * Check for trailing junk. */ - if (*cp && (!isascii(*cp) || !isspace(*cp))) - return 0; + while (*cp) + if (!isspace((unsigned char) *cp++)) + return 0; /* * Concoct the address according to the number of parts specified. diff --git a/src/backend/port/snprintf.c b/src/backend/port/snprintf.c index 46d1da0b98..dc85c3f681 100644 --- a/src/backend/port/snprintf.c +++ b/src/backend/port/snprintf.c @@ -74,7 +74,7 @@ typedef unsigned long ulong_long; * causing nast effects. **************************************************************/ -/*static char _id[] = "$Id: snprintf.c,v 1.27 1999/09/09 03:13:22 tgl Exp $";*/ +/*static char _id[] = "$Id: snprintf.c,v 1.28 2000/12/03 20:45:34 tgl Exp $";*/ static char *end; static int SnprfOverflow; @@ -457,7 +457,7 @@ static void dopr_outch(int c) { #ifdef NOT_USED - if (iscntrl(c) && c != '\n' && c != '\t') + if (iscntrl((unsigned char) c) && c != '\n' && c != '\t') { c = '@' + (c & 0x1F); if (end == 0 || output < end) diff --git a/src/backend/port/strtol.c b/src/backend/port/strtol.c index 16ae290d29..ccf89ad0a8 100644 --- a/src/backend/port/strtol.c +++ b/src/backend/port/strtol.c @@ -58,7 +58,7 @@ int base; { const char *s = nptr; unsigned long acc; - int c; + unsigned char c; unsigned long cutoff; int neg = 0, any, @@ -109,7 +109,7 @@ int base; cutoff = neg ? -(unsigned long) LONG_MIN : LONG_MAX; cutlim = cutoff % (unsigned long) base; cutoff /= (unsigned long) base; - for (acc = 0, any = 0;; c = *s++) + for (acc = 0, any = 0; ; c = *s++) { if (isdigit(c)) c -= '0'; @@ -117,9 +117,9 @@ int base; c -= isupper(c) ? 'A' - 10 : 'a' - 10; else break; - if (c >= base) + if ((int) c >= base) break; - if (any < 0 || acc > cutoff || acc == cutoff && c > cutlim) + if (any < 0 || acc > cutoff || acc == cutoff && (int) c > cutlim) any = -1; else { diff --git a/src/backend/port/strtoul.c b/src/backend/port/strtoul.c index f07b4c3719..0359791bd3 100644 --- a/src/backend/port/strtoul.c +++ b/src/backend/port/strtoul.c @@ -96,9 +96,9 @@ register int base; c -= isupper(c) ? 'A' - 10 : 'a' - 10; else break; - if (c >= base) + if ((int) c >= base) break; - if (any < 0 || acc > cutoff || (acc == cutoff && c > cutlim)) + if (any < 0 || acc > cutoff || (acc == cutoff && (int) c > cutlim)) any = -1; else { diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 4def9996f1..ca7f4fafa9 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -11,7 +11,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/postmaster/postmaster.c,v 1.197 2000/11/30 23:20:51 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/postmaster/postmaster.c,v 1.198 2000/12/03 20:45:34 tgl Exp $ * * NOTES * @@ -1807,12 +1807,12 @@ split_opts(char **argv, int *argcp, char *s) { while (s && *s) { - while (isspace((int) *s)) + while (isspace((unsigned char) *s)) ++s; if (*s == '\0') break; argv[(*argcp)++] = s; - while (*s && !isspace((int) *s)) + while (*s && !isspace((unsigned char) *s)) ++s; if (*s) *s++ = '\0'; diff --git a/src/backend/regex/engine.c b/src/backend/regex/engine.c index b4f6844549..58f776a560 100644 --- a/src/backend/regex/engine.c +++ b/src/backend/regex/engine.c @@ -1158,9 +1158,9 @@ static int pg_isprint(int c) { #ifdef MULTIBYTE - return (c >= 0 && c <= UCHAR_MAX && isprint(c)); + return (c >= 0 && c <= UCHAR_MAX && isprint((unsigned char) c)); #else - return (isprint(c)); + return (isprint((unsigned char) c)); #endif } diff --git a/src/backend/regex/regcomp.c b/src/backend/regex/regcomp.c index 65cf92fc56..3d9ff83de8 100644 --- a/src/backend/regex/regcomp.c +++ b/src/backend/regex/regcomp.c @@ -1049,15 +1049,15 @@ int ch; assert(pg_isalpha(ch)); if (pg_isupper(ch)) #ifdef MULTIBYTE - return (unsigned char) tolower(ch); + return (unsigned char) tolower((unsigned char) ch); #else - return tolower(ch); + return tolower((unsigned char) ch); #endif else if (pg_islower(ch)) #ifdef MULTIBYTE - return (unsigned char) toupper(ch); + return (unsigned char) toupper((unsigned char) ch); #else - return toupper(ch); + return toupper((unsigned char) ch); #endif else /* peculiar, but could happen */ @@ -1882,9 +1882,9 @@ static int pg_isdigit(int c) { #ifdef MULTIBYTE - return (c >= 0 && c <= UCHAR_MAX && isdigit(c)); + return (c >= 0 && c <= UCHAR_MAX && isdigit((unsigned char) c)); #else - return (isdigit(c)); + return (isdigit((unsigned char) c)); #endif } @@ -1892,9 +1892,9 @@ static int pg_isalpha(int c) { #ifdef MULTIBYTE - return (c >= 0 && c <= UCHAR_MAX && isalpha(c)); + return (c >= 0 && c <= UCHAR_MAX && isalpha((unsigned char) c)); #else - return (isalpha(c)); + return (isalpha((unsigned char) c)); #endif } @@ -1902,9 +1902,9 @@ static int pg_isupper(int c) { #ifdef MULTIBYTE - return (c >= 0 && c <= UCHAR_MAX && isupper(c)); + return (c >= 0 && c <= UCHAR_MAX && isupper((unsigned char) c)); #else - return (isupper(c)); + return (isupper((unsigned char) c)); #endif } @@ -1912,8 +1912,8 @@ static int pg_islower(int c) { #ifdef MULTIBYTE - return (c >= 0 && c <= UCHAR_MAX && islower(c)); + return (c >= 0 && c <= UCHAR_MAX && islower((unsigned char) c)); #else - return (islower(c)); + return (islower((unsigned char) c)); #endif } diff --git a/src/backend/utils/adt/acl.c b/src/backend/utils/adt/acl.c index ee3a41701f..1a505ccadd 100644 --- a/src/backend/utils/adt/acl.c +++ b/src/backend/utils/adt/acl.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/utils/adt/acl.c,v 1.54 2000/11/28 23:42:31 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/adt/acl.c,v 1.55 2000/12/03 20:45:35 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -57,7 +57,7 @@ getid(char *s, char *n) Assert(s && n); - while (isspace((int) *s)) + while (isspace((unsigned char) *s)) ++s; if (*s == '"') @@ -66,7 +66,9 @@ getid(char *s, char *n) s++; } - for (id = s, len = 0; isalnum((int) *s) || *s == '_' || in_quotes; ++len, ++s) + for (id = s, len = 0; + isalnum((unsigned char) *s) || *s == '_' || in_quotes; + ++len, ++s) { if (in_quotes && *s == '"') { @@ -80,7 +82,7 @@ getid(char *s, char *n) if (len > 0) memmove(n, id, len); n[len] = '\0'; - while (isspace((int) *s)) + while (isspace((unsigned char) *s)) ++s; return s; } @@ -149,7 +151,7 @@ aclparse(char *s, AclItem *aip, unsigned *modechg) } aip->ai_mode = ACL_NO; - while (isalpha((int) *++s)) + while (isalpha((unsigned char) *++s)) { switch (*s) { @@ -242,7 +244,7 @@ aclitemin(PG_FUNCTION_ARGS) s = aclparse(s, aip, &modechg); if (modechg != ACL_MODECHG_EQL) elog(ERROR, "aclitemin: cannot accept anything but = ACLs"); - while (isspace((int) *s)) + while (isspace((unsigned char) *s)) ++s; if (*s) elog(ERROR, "aclitemin: extra garbage at end of specification"); diff --git a/src/backend/utils/adt/arrayfuncs.c b/src/backend/utils/adt/arrayfuncs.c index 47c1b814c4..6379f041ad 100644 --- a/src/backend/utils/adt/arrayfuncs.c +++ b/src/backend/utils/adt/arrayfuncs.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/utils/adt/arrayfuncs.c,v 1.66 2000/11/16 22:30:31 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/adt/arrayfuncs.c,v 1.67 2000/12/03 20:45:35 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -146,14 +146,14 @@ array_in(PG_FUNCTION_ARGS) * Note: we currently allow whitespace between, but not within, * dimension items. */ - while (isspace((int) *p)) + while (isspace((unsigned char) *p)) p++; if (*p != '[') break; /* no more dimension items */ p++; if (ndim >= MAXDIM) elog(ERROR, "array_in: more than %d dimensions", MAXDIM); - for (q = p; isdigit((int) *q); q++); + for (q = p; isdigit((unsigned char) *q); q++); if (q == p) /* no digits? */ elog(ERROR, "array_in: missing dimension value"); if (*q == ':') @@ -162,7 +162,7 @@ array_in(PG_FUNCTION_ARGS) *q = '\0'; lBound[ndim] = atoi(p); p = q + 1; - for (q = p; isdigit((int) *q); q++); + for (q = p; isdigit((unsigned char) *q); q++); if (q == p) /* no digits? */ elog(ERROR, "array_in: missing dimension value"); } @@ -197,7 +197,7 @@ array_in(PG_FUNCTION_ARGS) if (strncmp(p, ASSGN, strlen(ASSGN)) != 0) elog(ERROR, "array_in: missing assignment operator"); p += strlen(ASSGN); - while (isspace((int) *p)) + while (isspace((unsigned char) *p)) p++; } @@ -323,7 +323,7 @@ ArrayCount(char *str, int *dim, int typdelim) temp[ndim - 1]++; q++; if (!eoArray) - while (isspace((int) *q)) + while (isspace((unsigned char) *q)) q++; } for (i = 0; i < ndim; ++i) @@ -454,7 +454,7 @@ ReadArrayStr(char *arrayStr, * if not at the end of the array skip white space */ if (!eoArray) - while (isspace((int) *q)) + while (isspace((unsigned char) *q)) { p++; q++; diff --git a/src/backend/utils/adt/cash.c b/src/backend/utils/adt/cash.c index f340fe6aae..7a3a5c11be 100644 --- a/src/backend/utils/adt/cash.c +++ b/src/backend/utils/adt/cash.c @@ -9,7 +9,7 @@ * workings can be found in the book "Software Solutions in C" by * Dale Schumacher, Academic Press, ISBN: 0-12-632360-7. * - * $Header: /cvsroot/pgsql/src/backend/utils/adt/cash.c,v 1.48 2000/11/25 22:43:08 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/adt/cash.c,v 1.49 2000/12/03 20:45:35 tgl Exp $ */ #include "postgres.h" @@ -122,7 +122,7 @@ cash_in(PG_FUNCTION_ARGS) /* we need to add all sorts of checking here. For now just */ /* strip all leading whitespace and any leading currency symbol */ - while (isspace((int) *s)) + while (isspace((unsigned char) *s)) s++; if (strncmp(s, csymbol, strlen(csymbol)) == 0) s += strlen(csymbol); @@ -154,7 +154,7 @@ cash_in(PG_FUNCTION_ARGS) printf("cashin- string is '%s'\n", s); #endif - while (isspace((int) *s)) + while (isspace((unsigned char) *s)) s++; if (strncmp(s, csymbol, strlen(csymbol)) == 0) s += strlen(csymbol); @@ -167,7 +167,7 @@ cash_in(PG_FUNCTION_ARGS) { /* we look for digits as int4 as we have less */ /* than the required number of decimal places */ - if (isdigit((int) *s) && dec < fpoint) + if (isdigit((unsigned char) *s) && dec < fpoint) { value = (value * 10) + *s - '0'; @@ -189,7 +189,7 @@ cash_in(PG_FUNCTION_ARGS) else { /* round off */ - if (isdigit((int) *s) && *s >= '5') + if (isdigit((unsigned char) *s) && *s >= '5') value++; /* adjust for less than required decimal places */ @@ -200,7 +200,7 @@ cash_in(PG_FUNCTION_ARGS) } } - while (isspace((int) *s) || *s == '0' || *s == ')') + while (isspace((unsigned char) *s) || *s == '0' || *s == ')') s++; if (*s != '\0') @@ -707,7 +707,7 @@ cash_words(PG_FUNCTION_ARGS) strcat(buf, m0 == 1 ? " cent" : " cents"); /* capitalize output */ - buf[0] = toupper(buf[0]); + buf[0] = toupper((unsigned char) buf[0]); /* make a text type for output */ result = (text *) palloc(strlen(buf) + VARHDRSZ); diff --git a/src/backend/utils/adt/datetime.c b/src/backend/utils/adt/datetime.c index a167943dff..1426088e62 100644 --- a/src/backend/utils/adt/datetime.c +++ b/src/backend/utils/adt/datetime.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/utils/adt/datetime.c,v 1.56 2000/11/11 19:55:19 thomas Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/adt/datetime.c,v 1.57 2000/12/03 20:45:35 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -421,16 +421,17 @@ ParseDateTime(char *timestr, char *lowstr, field[nf] = lp; /* leading digit? then date or time */ - if (isdigit((int) *cp) || (*cp == '.')) + if (isdigit((unsigned char) *cp) || (*cp == '.')) { *lp++ = *cp++; - while (isdigit((int) *cp)) + while (isdigit((unsigned char) *cp)) *lp++ = *cp++; /* time field? */ if (*cp == ':') { ftype[nf] = DTK_TIME; - while (isdigit((int) *cp) || (*cp == ':') || (*cp == '.')) + while (isdigit((unsigned char) *cp) || + (*cp == ':') || (*cp == '.')) *lp++ = *cp++; } @@ -438,8 +439,9 @@ ParseDateTime(char *timestr, char *lowstr, else if ((*cp == '-') || (*cp == '/') || (*cp == '.')) { ftype[nf] = DTK_DATE; - while (isalnum((int) *cp) || (*cp == '-') || (*cp == '/') || (*cp == '.')) - *lp++ = tolower(*cp++); + while (isalnum((unsigned char) *cp) || (*cp == '-') || + (*cp == '/') || (*cp == '.')) + *lp++ = tolower((unsigned char) *cp++); } @@ -456,12 +458,12 @@ ParseDateTime(char *timestr, char *lowstr, * text? then date string, month, day of week, special, or * timezone */ - else if (isalpha((int) *cp)) + else if (isalpha((unsigned char) *cp)) { ftype[nf] = DTK_STRING; - *lp++ = tolower(*cp++); - while (isalpha((int) *cp)) - *lp++ = tolower(*cp++); + *lp++ = tolower((unsigned char) *cp++); + while (isalpha((unsigned char) *cp)) + *lp++ = tolower((unsigned char) *cp++); /* * Full date string with leading text month? Could also be a @@ -470,13 +472,14 @@ ParseDateTime(char *timestr, char *lowstr, if ((*cp == '-') || (*cp == '/') || (*cp == '.')) { ftype[nf] = DTK_DATE; - while (isdigit((int) *cp) || (*cp == '-') || (*cp == '/') || (*cp == '.')) - *lp++ = tolower(*cp++); + while (isdigit((unsigned char) *cp) || + (*cp == '-') || (*cp == '/') || (*cp == '.')) + *lp++ = tolower((unsigned char) *cp++); } /* skip leading spaces */ } - else if (isspace((int) *cp)) + else if (isspace((unsigned char) *cp)) { cp++; continue; @@ -487,24 +490,25 @@ ParseDateTime(char *timestr, char *lowstr, { *lp++ = *cp++; /* soak up leading whitespace */ - while (isspace((int) *cp)) + while (isspace((unsigned char) *cp)) cp++; /* numeric timezone? */ - if (isdigit((int) *cp)) + if (isdigit((unsigned char) *cp)) { ftype[nf] = DTK_TZ; *lp++ = *cp++; - while (isdigit((int) *cp) || (*cp == ':') || (*cp == '.')) + while (isdigit((unsigned char) *cp) || + (*cp == ':') || (*cp == '.')) *lp++ = *cp++; /* special? */ } - else if (isalpha((int) *cp)) + else if (isalpha((unsigned char) *cp)) { ftype[nf] = DTK_SPECIAL; - *lp++ = tolower(*cp++); - while (isalpha((int) *cp)) - *lp++ = tolower(*cp++); + *lp++ = tolower((unsigned char) *cp++); + while (isalpha((unsigned char) *cp)) + *lp++ = tolower((unsigned char) *cp++); /* otherwise something wrong... */ } @@ -513,7 +517,7 @@ ParseDateTime(char *timestr, char *lowstr, /* ignore punctuation but use as delimiter */ } - else if (ispunct((int) *cp)) + else if (ispunct((unsigned char) *cp)) { cp++; continue; @@ -631,7 +635,7 @@ DecodeDateTime(char **field, int *ftype, int nf, * PST) */ if ((i > 0) && ((fmask & DTK_M(TZ)) != 0) - && (ftype[i - 1] == DTK_TZ) && (isalpha((int) *field[i - 1]))) + && (ftype[i - 1] == DTK_TZ) && (isalpha((unsigned char) *field[i - 1]))) { *tzp -= tz; tmask = 0; @@ -974,7 +978,7 @@ DecodeTimeOnly(char **field, int *ftype, int nf, * PST) */ if ((i > 0) && ((fmask & DTK_M(TZ)) != 0) - && (ftype[i - 1] == DTK_TZ) && (isalpha((int) *field[i - 1]))) + && (ftype[i - 1] == DTK_TZ) && (isalpha((unsigned char) *field[i - 1]))) { *tzp -= tz; tmask = 0; @@ -1162,18 +1166,18 @@ DecodeDate(char *str, int fmask, int *tmask, struct tm * tm) while ((*str != '\0') && (nf < MAXDATEFIELDS)) { /* skip field separators */ - while (!isalnum((int) *str)) + while (!isalnum((unsigned char) *str)) str++; field[nf] = str; - if (isdigit((int) *str)) + if (isdigit((unsigned char) *str)) { - while (isdigit((int) *str)) + while (isdigit((unsigned char) *str)) str++; } - else if (isalpha((int) *str)) + else if (isalpha((unsigned char) *str)) { - while (isalpha((int) *str)) + while (isalpha((unsigned char) *str)) str++; } @@ -1193,7 +1197,7 @@ DecodeDate(char *str, int fmask, int *tmask, struct tm * tm) /* look first for text fields, since that will be unambiguous month */ for (i = 0; i < nf; i++) { - if (isalpha((int) *field[i])) + if (isalpha((unsigned char) *field[i])) { type = DecodeSpecial(i, field[i], &val); if (type == IGNORE) @@ -1556,7 +1560,7 @@ DecodePosixTimezone(char *str, int *tzp) char delim; cp = str; - while ((*cp != '\0') && isalpha((int) *cp)) + while ((*cp != '\0') && isalpha((unsigned char) *cp)) cp++; if (DecodeTimezone(cp, &tz) != 0) diff --git a/src/backend/utils/adt/format_type.c b/src/backend/utils/adt/format_type.c index 6022dc7851..62107cb019 100644 --- a/src/backend/utils/adt/format_type.c +++ b/src/backend/utils/adt/format_type.c @@ -8,7 +8,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/utils/adt/format_type.c,v 1.6 2000/11/16 22:30:31 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/adt/format_type.c,v 1.7 2000/12/03 20:45:35 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -203,7 +203,7 @@ format_type_internal(Oid type_oid, int32 typemod) default: name = NameStr(((Form_pg_type) GETSTRUCT(tuple))->typname); if (strspn(name, "abcdefghijklmnopqrstuvwxyz0123456789_") != strlen(name) - || isdigit((int) name[0])) + || isdigit((unsigned char) name[0])) buf = psnprintf(strlen(name) + 3, "\"%s\"", name); else buf = pstrdup(name); diff --git a/src/backend/utils/adt/formatting.c b/src/backend/utils/adt/formatting.c index 7602848eb9..b7e6bb99d8 100644 --- a/src/backend/utils/adt/formatting.c +++ b/src/backend/utils/adt/formatting.c @@ -1,7 +1,7 @@ /* ----------------------------------------------------------------------- * formatting.c * - * $Header: /cvsroot/pgsql/src/backend/utils/adt/formatting.c,v 1.25 2000/12/01 05:17:19 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/adt/formatting.c,v 1.26 2000/12/03 20:45:35 tgl Exp $ * * * Portions Copyright (c) 1999-2000, PostgreSQL, Inc @@ -127,7 +127,7 @@ typedef struct int len, /* keyword length */ (*action) (), id; /* keyword id */ - bool isdigit; /* is expected output/input digit */ + bool isitdigit; /* is expected output/input digit */ } KeyWord; typedef struct @@ -601,7 +601,7 @@ typedef enum * ---------- */ static KeyWord DCH_keywords[] = { -/* keyword, len, func, type, isdigit is in Index */ +/* keyword, len, func, type, isitdigit is in Index */ {"A.D.", 4, dch_date, DCH_A_D, FALSE}, /* A */ {"A.M.", 4, dch_time, DCH_A_M, FALSE}, {"AD", 2, dch_date, DCH_AD, FALSE}, @@ -682,7 +682,7 @@ static KeyWord DCH_keywords[] = { {NULL, 0, NULL, 0}}; /* ---------- - * KeyWords for NUMBER version (now, isdigit info is not needful here..) + * KeyWords for NUMBER version (now, isitdigit info is not needful here..) * ---------- */ static KeyWord NUM_keywords[] = { @@ -1233,9 +1233,9 @@ DCH_processor(FormatNode *node, char *inout, int flag) * Skip blank space in FROM_CHAR's input * ---------- */ - if (isspace(n->character) && IS_FX == 0) + if (isspace((unsigned char) n->character) && IS_FX == 0) { - while (*s != '\0' && isspace((int) *(s + 1))) + while (*s != '\0' && isspace((unsigned char) *(s + 1))) ++s; } } @@ -1552,12 +1552,12 @@ is_next_separator(FormatNode *n) if (n->type == NODE_TYPE_ACTION) { - if (n->key->isdigit) + if (n->key->isitdigit) return FALSE; return TRUE; } - else if (isdigit(n->character)) + else if (isdigit((unsigned char) n->character)) return FALSE; return TRUE; /* some non-digit input (separator) */ @@ -1952,7 +1952,7 @@ dch_date(int arg, char *inout, int suf, int flag, FormatNode *node) case DCH_month: sprintf(inout, "%*s", S_FM(suf) ? 0 : -9, months_full[tm->tm_mon - 1]); - *inout = tolower(*inout); + *inout = tolower((unsigned char) *inout); if (S_FM(suf)) return strlen(p_inout) - 1; else @@ -1969,7 +1969,7 @@ dch_date(int arg, char *inout, int suf, int flag, FormatNode *node) case DCH_mon: strcpy(inout, months[tm->tm_mon - 1]); - *inout = tolower(*inout); + *inout = tolower((unsigned char) *inout); return 2; case DCH_MM: @@ -2015,7 +2015,7 @@ dch_date(int arg, char *inout, int suf, int flag, FormatNode *node) case DCH_day: sprintf(inout, "%*s", S_FM(suf) ? 0 : -9, days[tm->tm_wday]); - *inout = tolower(*inout); + *inout = tolower((unsigned char) *inout); if (S_FM(suf)) return strlen(p_inout) - 1; else @@ -2032,7 +2032,7 @@ dch_date(int arg, char *inout, int suf, int flag, FormatNode *node) case DCH_dy: strcpy(inout, days[tm->tm_wday]); - *inout = tolower(*inout); + *inout = tolower((unsigned char) *inout); return 2; case DCH_DDD: diff --git a/src/backend/utils/adt/geo_ops.c b/src/backend/utils/adt/geo_ops.c index 09a2da7158..3a5591ba5d 100644 --- a/src/backend/utils/adt/geo_ops.c +++ b/src/backend/utils/adt/geo_ops.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/utils/adt/geo_ops.c,v 1.54 2000/07/30 20:43:41 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/adt/geo_ops.c,v 1.55 2000/12/03 20:45:35 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -119,7 +119,7 @@ single_decode(char *str, float8 *x, char **s) if (!PointerIsValid(str)) return FALSE; - while (isspace((int) *str)) + while (isspace((unsigned char) *str)) str++; *x = strtod(str, &cp); #ifdef GEODEBUG @@ -127,7 +127,7 @@ single_decode(char *str, float8 *x, char **s) #endif if (cp <= str) return FALSE; - while (isspace((int) *cp)) + while (isspace((unsigned char) *cp)) cp++; if (s != NULL) @@ -152,33 +152,33 @@ pair_decode(char *str, float8 *x, float8 *y, char **s) if (!PointerIsValid(str)) return FALSE; - while (isspace((int) *str)) + while (isspace((unsigned char) *str)) str++; if ((has_delim = (*str == LDELIM))) str++; - while (isspace((int) *str)) + while (isspace((unsigned char) *str)) str++; *x = strtod(str, &cp); if (cp <= str) return FALSE; - while (isspace((int) *cp)) + while (isspace((unsigned char) *cp)) cp++; if (*cp++ != DELIM) return FALSE; - while (isspace((int) *cp)) + while (isspace((unsigned char) *cp)) cp++; *y = strtod(cp, &str); if (str <= cp) return FALSE; - while (isspace((int) *str)) + while (isspace((unsigned char) *str)) str++; if (has_delim) { if (*str != RDELIM) return FALSE; str++; - while (isspace((int) *str)) + while (isspace((unsigned char) *str)) str++; } if (s != NULL) @@ -203,7 +203,7 @@ path_decode(int opentype, int npts, char *str, int *isopen, char **ss, Point *p) int i; s = str; - while (isspace((int) *s)) + while (isspace((unsigned char) *s)) s++; if ((*isopen = (*s == LDELIM_EP))) { @@ -212,14 +212,14 @@ path_decode(int opentype, int npts, char *str, int *isopen, char **ss, Point *p) return FALSE; depth++; s++; - while (isspace((int) *s)) + while (isspace((unsigned char) *s)) s++; } else if (*s == LDELIM) { cp = (s + 1); - while (isspace((int) *cp)) + while (isspace((unsigned char) *cp)) cp++; if (*cp == LDELIM) { @@ -255,7 +255,7 @@ path_decode(int opentype, int npts, char *str, int *isopen, char **ss, Point *p) { depth--; s++; - while (isspace((int) *s)) + while (isspace((unsigned char) *s)) s++; } else @@ -1216,7 +1216,7 @@ path_in(PG_FUNCTION_ARGS) elog(ERROR, "Bad path external representation '%s'", str); s = str; - while (isspace((int) *s)) + while (isspace((unsigned char) *s)) s++; /* skip single leading paren */ @@ -3752,13 +3752,13 @@ circle_in(PG_FUNCTION_ARGS) circle = (CIRCLE *) palloc(sizeof(CIRCLE)); s = str; - while (isspace((int) *s)) + while (isspace((unsigned char) *s)) s++; if ((*s == LDELIM_C) || (*s == LDELIM)) { depth++; cp = (s + 1); - while (isspace((int) *cp)) + while (isspace((unsigned char) *cp)) cp++; if (*cp == LDELIM) s = cp; @@ -3769,7 +3769,7 @@ circle_in(PG_FUNCTION_ARGS) if (*s == DELIM) s++; - while (isspace((int) *s)) + while (isspace((unsigned char) *s)) s++; if ((!single_decode(s, &circle->radius, &s)) || (circle->radius < 0)) @@ -3782,7 +3782,7 @@ circle_in(PG_FUNCTION_ARGS) { depth--; s++; - while (isspace((int) *s)) + while (isspace((unsigned char) *s)) s++; } else diff --git a/src/backend/utils/adt/inet_net_pton.c b/src/backend/utils/adt/inet_net_pton.c index a8a03032a4..3784bf04be 100644 --- a/src/backend/utils/adt/inet_net_pton.c +++ b/src/backend/utils/adt/inet_net_pton.c @@ -16,7 +16,7 @@ */ #if defined(LIBC_SCCS) && !defined(lint) -static const char rcsid[] = "$Id: inet_net_pton.c,v 1.11 2000/06/14 18:17:44 petere Exp $"; +static const char rcsid[] = "$Id: inet_net_pton.c,v 1.12 2000/12/03 20:45:36 tgl Exp $"; #endif @@ -105,7 +105,7 @@ inet_cidr_pton_ipv4(const char *src, u_char *dst, size_t size) ch = *src++; if (ch == '0' && (src[0] == 'x' || src[0] == 'X') - && isascii((int) src[1]) && isxdigit((int) src[1])) + && isxdigit((unsigned char) src[1])) { /* Hexadecimal: Eat nybble string. */ if (size <= 0) @@ -113,10 +113,10 @@ inet_cidr_pton_ipv4(const char *src, u_char *dst, size_t size) dirty = 0; tmp = 0; src++; /* skip x or X. */ - while ((ch = *src++) != '\0' && isascii(ch) && isxdigit(ch)) + while ((ch = *src++) != '\0' && isxdigit((unsigned char) ch)) { - if (isupper(ch)) - ch = tolower(ch); + if (isupper((unsigned char) ch)) + ch = tolower((unsigned char) ch); n = strchr(xdigits, ch) - xdigits; assert(n >= 0 && n <= 15); if (dirty == 0) @@ -138,7 +138,7 @@ inet_cidr_pton_ipv4(const char *src, u_char *dst, size_t size) *dst++ = (u_char) (tmp << 4); } } - else if (isascii(ch) && isdigit(ch)) + else if (isdigit((unsigned char) ch)) { /* Decimal: eat dotted digit string. */ for (;;) @@ -153,7 +153,7 @@ inet_cidr_pton_ipv4(const char *src, u_char *dst, size_t size) if (tmp > 255) goto enoent; } while ((ch = *src++) != '\0' && - isascii(ch) && isdigit(ch)); + isdigit((unsigned char) ch)); if (size-- <= 0) goto emsgsize; *dst++ = (u_char) tmp; @@ -162,7 +162,7 @@ inet_cidr_pton_ipv4(const char *src, u_char *dst, size_t size) if (ch != '.') goto enoent; ch = *src++; - if (!isascii(ch) || !isdigit(ch)) + if (!isdigit((unsigned char) ch)) goto enoent; } } @@ -170,7 +170,7 @@ inet_cidr_pton_ipv4(const char *src, u_char *dst, size_t size) goto enoent; bits = -1; - if (ch == '/' && isascii((int) src[0]) && isdigit((int) src[0]) && dst > odst) + if (ch == '/' && isdigit((unsigned char) src[0]) && dst > odst) { /* CIDR width specifier. Nothing can follow it. */ ch = *src++; /* Skip over the /. */ @@ -181,8 +181,7 @@ inet_cidr_pton_ipv4(const char *src, u_char *dst, size_t size) assert(n >= 0 && n <= 9); bits *= 10; bits += n; - } while ((ch = *src++) != '\0' && - isascii(ch) && isdigit(ch)); + } while ((ch = *src++) != '\0' && isdigit((unsigned char) ch)); if (ch != '\0') goto enoent; if (bits > 32) @@ -261,7 +260,7 @@ inet_net_pton_ipv4(const char *src, u_char *dst) size_t size = 4; /* Get the mantissa. */ - while (ch = *src++, (isascii(ch) && isdigit(ch))) + while (ch = *src++, isdigit((unsigned char) ch)) { tmp = 0; do @@ -272,7 +271,7 @@ inet_net_pton_ipv4(const char *src, u_char *dst) tmp += n; if (tmp > 255) goto enoent; - } while ((ch = *src++) != '\0' && isascii(ch) && isdigit(ch)); + } while ((ch = *src++) != '\0' && isdigit((unsigned char) ch)); if (size-- == 0) goto emsgsize; *dst++ = (u_char) tmp; @@ -284,7 +283,7 @@ inet_net_pton_ipv4(const char *src, u_char *dst) /* Get the prefix length if any. */ bits = -1; - if (ch == '/' && isascii((int) src[0]) && isdigit((int) src[0]) && dst > odst) + if (ch == '/' && isdigit((unsigned char) src[0]) && dst > odst) { /* CIDR width specifier. Nothing can follow it. */ ch = *src++; /* Skip over the /. */ @@ -295,7 +294,7 @@ inet_net_pton_ipv4(const char *src, u_char *dst) assert(n >= 0 && n <= 9); bits *= 10; bits += n; - } while ((ch = *src++) != '\0' && isascii(ch) && isdigit(ch)); + } while ((ch = *src++) != '\0' && isdigit((unsigned char) ch)); if (ch != '\0') goto enoent; if (bits > 32) diff --git a/src/backend/utils/adt/int.c b/src/backend/utils/adt/int.c index 4f786784eb..c4677a8934 100644 --- a/src/backend/utils/adt/int.c +++ b/src/backend/utils/adt/int.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/utils/adt/int.c,v 1.43 2000/10/24 20:14:35 petere Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/adt/int.c,v 1.44 2000/12/03 20:45:36 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -85,12 +85,12 @@ int2vectorin(PG_FUNCTION_ARGS) { if (sscanf(intString, "%hd", &result[slot]) != 1) break; - while (*intString && isspace((int) *intString)) + while (*intString && isspace((unsigned char) *intString)) intString++; - while (*intString && !isspace((int) *intString)) + while (*intString && !isspace((unsigned char) *intString)) intString++; } - while (*intString && isspace((int) *intString)) + while (*intString && isspace((unsigned char) *intString)) intString++; if (*intString) elog(ERROR, "int2vector value has too many values"); diff --git a/src/backend/utils/adt/int8.c b/src/backend/utils/adt/int8.c index bc4b64b9ec..eb49363fae 100644 --- a/src/backend/utils/adt/int8.c +++ b/src/backend/utils/adt/int8.c @@ -7,7 +7,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/utils/adt/int8.c,v 1.25 2000/10/24 20:14:35 petere Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/adt/int8.c,v 1.26 2000/12/03 20:45:36 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -67,15 +67,15 @@ int8in(PG_FUNCTION_ARGS) * Do our own scan, rather than relying on sscanf which might be * broken for long long. */ - while (*ptr && isspace((int) *ptr)) /* skip leading spaces */ + while (*ptr && isspace((unsigned char) *ptr)) /* skip leading spaces */ ptr++; if (*ptr == '-') /* handle sign */ sign = -1, ptr++; else if (*ptr == '+') ptr++; - if (!isdigit((int) *ptr)) /* require at least one digit */ + if (!isdigit((unsigned char) *ptr)) /* require at least one digit */ elog(ERROR, "Bad int8 external representation \"%s\"", str); - while (*ptr && isdigit((int) *ptr)) /* process digits */ + while (*ptr && isdigit((unsigned char) *ptr)) /* process digits */ { int64 newtmp = tmp * 10 + (*ptr++ - '0'); diff --git a/src/backend/utils/adt/nabstime.c b/src/backend/utils/adt/nabstime.c index a7ee883f7b..f5d238bda7 100644 --- a/src/backend/utils/adt/nabstime.c +++ b/src/backend/utils/adt/nabstime.c @@ -9,7 +9,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/utils/adt/nabstime.c,v 1.75 2000/10/29 13:17:34 petere Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/adt/nabstime.c,v 1.76 2000/12/03 20:45:36 tgl Exp $ * * NOTES * @@ -1655,7 +1655,7 @@ dummyfunc() for (;;) { c = *p; - if (isdigit(c)) + if (isdigit((unsigned char) c)) { *quantity = *quantity * 10 + (c - '0'); p++; diff --git a/src/backend/utils/adt/numeric.c b/src/backend/utils/adt/numeric.c index a867e7f348..6bb7ba379d 100644 --- a/src/backend/utils/adt/numeric.c +++ b/src/backend/utils/adt/numeric.c @@ -5,7 +5,7 @@ * * 1998 Jan Wieck * - * $Header: /cvsroot/pgsql/src/backend/utils/adt/numeric.c,v 1.34 2000/08/01 18:29:35 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/adt/numeric.c,v 1.35 2000/12/03 20:45:36 tgl Exp $ * * ---------- */ @@ -2339,7 +2339,7 @@ set_var_from_str(char *str, NumericVar *dest) while (*cp) { - if (!isspace((int) *cp)) + if (!isspace((unsigned char) *cp)) break; cp++; } @@ -2368,12 +2368,12 @@ set_var_from_str(char *str, NumericVar *dest) cp++; } - if (!isdigit((int) *cp)) + if (!isdigit((unsigned char) *cp)) elog(ERROR, "Bad numeric input format '%s'", str); while (*cp) { - if (isdigit((int) *cp)) + if (isdigit((unsigned char) *cp)) { dest->digits[i++] = *cp++ - '0'; if (!have_dp) @@ -2416,7 +2416,7 @@ set_var_from_str(char *str, NumericVar *dest) /* Should be nothing left but spaces */ while (*cp) { - if (!isspace((int) *cp)) + if (!isspace((unsigned char) *cp)) elog(ERROR, "Bad numeric input format '%s'", str); cp++; } diff --git a/src/backend/utils/adt/oid.c b/src/backend/utils/adt/oid.c index f5df76bf38..daf66621fa 100644 --- a/src/backend/utils/adt/oid.c +++ b/src/backend/utils/adt/oid.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/utils/adt/oid.c,v 1.40 2000/11/21 04:27:39 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/adt/oid.c,v 1.41 2000/12/03 20:45:36 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -42,12 +42,12 @@ oidvectorin(PG_FUNCTION_ARGS) { if (sscanf(oidString, "%u", &result[slot]) != 1) break; - while (*oidString && isspace((int) *oidString)) + while (*oidString && isspace((unsigned char) *oidString)) oidString++; - while (*oidString && isdigit((int) *oidString)) + while (*oidString && isdigit((unsigned char) *oidString)) oidString++; } - while (*oidString && isspace((int) *oidString)) + while (*oidString && isspace((unsigned char) *oidString)) oidString++; if (*oidString) elog(ERROR, "oidvector value has too many values"); diff --git a/src/backend/utils/adt/oracle_compat.c b/src/backend/utils/adt/oracle_compat.c index 8b483ee5c6..e851102620 100644 --- a/src/backend/utils/adt/oracle_compat.c +++ b/src/backend/utils/adt/oracle_compat.c @@ -1,7 +1,7 @@ /* * Edmund Mergl * - * $Header: /cvsroot/pgsql/src/backend/utils/adt/oracle_compat.c,v 1.28 2000/09/25 12:58:47 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/adt/oracle_compat.c,v 1.29 2000/12/03 20:45:36 tgl Exp $ * */ @@ -118,7 +118,7 @@ initcap(PG_FUNCTION_ARGS) while (m-- > 0) { - if (isspace(ptr[-1])) + if (isspace((unsigned char) ptr[-1])) *ptr = toupper((unsigned char) *ptr); else *ptr = tolower((unsigned char) *ptr); diff --git a/src/backend/utils/adt/selfuncs.c b/src/backend/utils/adt/selfuncs.c index 8d4c4d080a..078f5bcdb6 100644 --- a/src/backend/utils/adt/selfuncs.c +++ b/src/backend/utils/adt/selfuncs.c @@ -15,7 +15,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/utils/adt/selfuncs.c,v 1.83 2000/11/25 20:33:53 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/adt/selfuncs.c,v 1.84 2000/12/03 20:45:36 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -1421,7 +1421,7 @@ like_fixed_prefix(char *patt, bool case_insensitive, * XXX I suspect isalpha() is not an adequately locale-sensitive * test for characters that can vary under case folding? */ - if (case_insensitive && isalpha((int) patt[pos])) + if (case_insensitive && isalpha((unsigned char) patt[pos])) break; /* * NOTE: this code used to think that %% meant a literal %, but @@ -1504,7 +1504,7 @@ regex_fixed_prefix(char *patt, bool case_insensitive, patt[pos] == '(' || patt[pos] == '[' || patt[pos] == '$' || - (case_insensitive && isalpha((int) patt[pos]))) + (case_insensitive && isalpha((unsigned char) patt[pos]))) break; /* * Check for quantifiers. Except for +, this means the preceding diff --git a/src/backend/utils/adt/timestamp.c b/src/backend/utils/adt/timestamp.c index 4478dc95ef..6930205b15 100644 --- a/src/backend/utils/adt/timestamp.c +++ b/src/backend/utils/adt/timestamp.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/utils/adt/timestamp.c,v 1.38 2000/11/11 19:55:19 thomas Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/adt/timestamp.c,v 1.39 2000/12/03 20:45:36 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -1597,7 +1597,7 @@ timestamp_trunc(PG_FUNCTION_ARGS) up = VARDATA(units); lp = lowunits; for (i = 0; i < (VARSIZE(units) - VARHDRSZ); i++) - *lp++ = tolower(*up++); + *lp++ = tolower((unsigned char) *up++); *lp = '\0'; type = DecodeUnits(0, lowunits, &val); @@ -1730,7 +1730,7 @@ interval_trunc(PG_FUNCTION_ARGS) up = VARDATA(units); lp = lowunits; for (i = 0; i < (VARSIZE(units) - VARHDRSZ); i++) - *lp++ = tolower(*up++); + *lp++ = tolower((unsigned char) *up++); *lp = '\0'; type = DecodeUnits(0, lowunits, &val); @@ -1921,7 +1921,7 @@ timestamp_part(PG_FUNCTION_ARGS) up = VARDATA(units); lp = lowunits; for (i = 0; i < (VARSIZE(units) - VARHDRSZ); i++) - *lp++ = tolower(*up++); + *lp++ = tolower((unsigned char) *up++); *lp = '\0'; type = DecodeUnits(0, lowunits, &val); @@ -2079,7 +2079,7 @@ interval_part(PG_FUNCTION_ARGS) up = VARDATA(units); lp = lowunits; for (i = 0; i < (VARSIZE(units) - VARHDRSZ); i++) - *lp++ = tolower(*up++); + *lp++ = tolower((unsigned char) *up++); *lp = '\0'; type = DecodeUnits(0, lowunits, &val); @@ -2214,7 +2214,7 @@ timestamp_zone(PG_FUNCTION_ARGS) up = VARDATA(zone); lp = lowzone; for (i = 0; i < (VARSIZE(zone) - VARHDRSZ); i++) - *lp++ = tolower(*up++); + *lp++ = tolower((unsigned char) *up++); *lp = '\0'; type = DecodeSpecial(0, lowzone, &val); @@ -2237,7 +2237,7 @@ timestamp_zone(PG_FUNCTION_ARGS) up = upzone; lp = lowzone; for (i = 0; *lp != '\0'; i++) - *up++ = toupper(*lp++); + *up++ = toupper((unsigned char) *lp++); *up = '\0'; tzn = upzone; diff --git a/src/backend/utils/adt/varlena.c b/src/backend/utils/adt/varlena.c index b075bf9111..89ca5c4ecd 100644 --- a/src/backend/utils/adt/varlena.c +++ b/src/backend/utils/adt/varlena.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/utils/adt/varlena.c,v 1.65 2000/07/29 03:26:42 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/adt/varlena.c,v 1.66 2000/12/03 20:45:36 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -56,9 +56,9 @@ byteain(PG_FUNCTION_ARGS) { if (*tp == '\\') tp++; - else if (!isdigit((int) *tp++) || - !isdigit((int) *tp++) || - !isdigit((int) *tp++)) + else if (!isdigit((unsigned char) *tp++) || + !isdigit((unsigned char) *tp++) || + !isdigit((unsigned char) *tp++)) elog(ERROR, "Bad input string for type bytea"); } } @@ -111,7 +111,7 @@ byteaout(PG_FUNCTION_ARGS) { if (*vp == '\\') len += 2; - else if (isascii((int) *vp) && isprint((int) *vp)) + else if (isprint((unsigned char) *vp)) len++; else len += 4; @@ -125,7 +125,7 @@ byteaout(PG_FUNCTION_ARGS) *rp++ = '\\'; *rp++ = '\\'; } - else if (isascii((int) *vp) && isprint((int) *vp)) + else if (isprint((unsigned char) *vp)) *rp++ = *vp; else { diff --git a/src/backend/utils/error/elog.c b/src/backend/utils/error/elog.c index 3ce9434d68..b3fbd4b19e 100644 --- a/src/backend/utils/error/elog.c +++ b/src/backend/utils/error/elog.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/utils/error/elog.c,v 1.71 2000/12/03 10:27:28 vadim Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/error/elog.c,v 1.72 2000/12/03 20:45:36 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -693,13 +693,13 @@ write_syslog(int level, const char *line) l = strlen(buf); #endif /* already word boundary? */ - if (isspace(line[l]) || line[l] == '\0') + if (isspace((unsigned char) line[l]) || line[l] == '\0') buflen = l; else { /* try to divide at word boundary */ i = l - 1; - while (i > 0 && !isspace(buf[i])) + while (i > 0 && !isspace((unsigned char) buf[i])) i--; if (i <= 0) /* couldn't divide word boundary */ diff --git a/src/bin/pg_dump/common.c b/src/bin/pg_dump/common.c index 17aba1956f..4711a76976 100644 --- a/src/bin/pg_dump/common.c +++ b/src/bin/pg_dump/common.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/bin/pg_dump/common.c,v 1.47 2000/09/15 04:57:09 pjw Exp $ + * $Header: /cvsroot/pgsql/src/bin/pg_dump/common.c,v 1.48 2000/12/03 20:45:37 tgl Exp $ * * Modifications - 6/12/96 - dave@bensoft.com - version 1.13.dhb.2 * @@ -213,7 +213,8 @@ parseNumericArray(const char *str, char **array, int arraysize) } else { - if (!(isdigit((int) s) || s == '-') || j >= sizeof(temp) - 1) + if (!(isdigit((unsigned char) s) || s == '-') || + j >= sizeof(temp) - 1) { fprintf(stderr, "parseNumericArray: bogus number\n"); exit(2); @@ -541,13 +542,15 @@ fmtId(const char *rawid, bool force_quotes) if (!force_quotes) { /* do a quick check on the first character... */ - if (!islower((int) *rawid)) + if (!islower((unsigned char) *rawid)) force_quotes = true; /* otherwise check the entire string */ else for (cp = rawid; *cp; cp++) { - if (!(islower((int) *cp) || isdigit((int) *cp) || (*cp == '_'))) + if (!(islower((unsigned char) *cp) || + isdigit((unsigned char) *cp) || + (*cp == '_'))) { force_quotes = true; break; diff --git a/src/bin/pg_dump/pg_backup_db.c b/src/bin/pg_dump/pg_backup_db.c index 6ba9f85402..d84e25e309 100644 --- a/src/bin/pg_dump/pg_backup_db.c +++ b/src/bin/pg_dump/pg_backup_db.c @@ -581,7 +581,7 @@ void FixupBlobRefs(ArchiveHandle *AH, char *tablename) char *attr; for(i=0 ; i < strlen(tablename) ; i++) - tablename[i] = tolower(tablename[i]); + tablename[i] = tolower((unsigned char) tablename[i]); if (strcmp(tablename, BLOB_XREF_TABLE) == 0) return; diff --git a/src/bin/pg_dump/pg_backup_tar.c b/src/bin/pg_dump/pg_backup_tar.c index cb4a9e906d..8e16899b9a 100644 --- a/src/bin/pg_dump/pg_backup_tar.c +++ b/src/bin/pg_dump/pg_backup_tar.c @@ -550,7 +550,7 @@ static void _PrintTocData(ArchiveHandle* AH, TocEntry* te, RestoreOptions *ropt) /* Get a copy of the COPY statement and clean it up */ tmpCopy = strdup(te->copyStmt); for (i=0 ; i < strlen(tmpCopy) ; i++) - tmpCopy[i] = tolower(tmpCopy[i]); + tmpCopy[i] = tolower((unsigned char) tmpCopy[i]); /* * This is very nasty; we don't know if the archive used WITH OIDS, so diff --git a/src/bin/pg_dump/pg_dump.c b/src/bin/pg_dump/pg_dump.c index f0d6cd2e08..588f90df54 100644 --- a/src/bin/pg_dump/pg_dump.c +++ b/src/bin/pg_dump/pg_dump.c @@ -22,7 +22,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/bin/pg_dump/pg_dump.c,v 1.182 2000/11/27 20:51:40 momjian Exp $ + * $Header: /cvsroot/pgsql/src/bin/pg_dump/pg_dump.c,v 1.183 2000/12/03 20:45:37 tgl Exp $ * * Modifications - 6/10/96 - dave@bensoft.com - version 1.13.dhb * @@ -813,9 +813,8 @@ main(int argc, char **argv) else { for (i = 0; tablename[i]; i++) - if (isascii((int) tablename[i]) && - isupper((int) tablename[i])) - tablename[i] = tolower(tablename[i]); + if (isupper((unsigned char) tablename[i])) + tablename[i] = tolower((unsigned char) tablename[i]); } } break; diff --git a/src/bin/pg_dump/pg_restore.c b/src/bin/pg_dump/pg_restore.c index 458482ed51..d8049df81b 100644 --- a/src/bin/pg_dump/pg_restore.c +++ b/src/bin/pg_dump/pg_restore.c @@ -381,26 +381,23 @@ static char* _cleanupName(char* name) { int i; - if (!name) - return NULL; - - if (strlen(name) == 0) - return NULL; + if (!name || ! name[0]) + return NULL; name = strdup(name); if (name[0] == '"') { - strcpy(name, &name[1]); - if (*(name + strlen(name) - 1) == '"') - *(name + strlen(name) - 1) = '\0'; + strcpy(name, &name[1]); + if (name[0] && *(name + strlen(name) - 1) == '"') + *(name + strlen(name) - 1) = '\0'; } /* otherwise, convert table name to lowercase... */ else { - for (i = 0; name[i]; i++) - if (isascii((unsigned char) name[i]) && isupper(name[i])) - name[i] = tolower(name[i]); + for (i = 0; name[i]; i++) + if (isupper((unsigned char) name[i])) + name[i] = tolower((unsigned char) name[i]); } return name; } diff --git a/src/bin/pg_passwd/pg_passwd.c b/src/bin/pg_passwd/pg_passwd.c index 071785f2a6..0f7a0adf16 100644 --- a/src/bin/pg_passwd/pg_passwd.c +++ b/src/bin/pg_passwd/pg_passwd.c @@ -6,7 +6,7 @@ #include #include #include -#define issaltchar(c) (isalnum(c) || (c) == '.' || (c) == '/') +#define issaltchar(c) (isalnum((unsigned char) (c)) || (c) == '.' || (c) == '/') #ifdef HAVE_TERMIOS_H #include diff --git a/src/bin/psql/command.c b/src/bin/psql/command.c index 782c161c23..3a47f8e15c 100644 --- a/src/bin/psql/command.c +++ b/src/bin/psql/command.c @@ -3,7 +3,7 @@ * * Copyright 2000 by PostgreSQL Global Development Group * - * $Header: /cvsroot/pgsql/src/bin/psql/command.c,v 1.41 2000/11/27 02:20:36 tgl Exp $ + * $Header: /cvsroot/pgsql/src/bin/psql/command.c,v 1.42 2000/12/03 20:45:38 tgl Exp $ */ #include "postgres.h" #include "command.h" @@ -142,7 +142,7 @@ HandleSlashCmds(const char *line, status = exec_command(new_cmd, my_line + 1, &continue_parse, query_buf); #if 0 /* turned out to be too annoying */ - if (status != CMD_UNKNOWN && isalpha(new_cmd[0])) + if (status != CMD_UNKNOWN && isalpha((unsigned char) new_cmd[0])) psql_error("Warning: this syntax is deprecated\n"); #endif } @@ -1070,8 +1070,8 @@ scan_option(char **string, enum option_type type, char *quote) if (type == OT_SQLID) for (cp = return_val; *cp; cp += PQmblen(cp, pset.encoding)) - if (isascii(*cp)) - *cp = tolower(*cp); + if (isupper((unsigned char) *cp)) + *cp = tolower((unsigned char) *cp); *string = &options_string[pos + token_end]; return return_val; diff --git a/src/bin/psql/tab-complete.c b/src/bin/psql/tab-complete.c index f519b460b4..9feb9055a9 100644 --- a/src/bin/psql/tab-complete.c +++ b/src/bin/psql/tab-complete.c @@ -3,7 +3,7 @@ * * Copyright 2000 by PostgreSQL Global Development Group * - * $Header: /cvsroot/pgsql/src/bin/psql/tab-complete.c,v 1.23 2000/12/03 14:36:47 petere Exp $ + * $Header: /cvsroot/pgsql/src/bin/psql/tab-complete.c,v 1.24 2000/12/03 20:45:38 tgl Exp $ */ /*---------------------------------------------------------------------- @@ -50,7 +50,7 @@ /* If we don't have this, we might as well forget about the whole thing: */ #ifdef USE_READLINE -#include /* toupper */ +#include #ifdef USE_ASSERT_CHECKING #include #endif @@ -440,7 +440,8 @@ psql_completion(char *text, int start, int end) /* Complete "AS ON " with a "TO" */ else if (strcasecmp(prev3_wd, "AS") == 0 && strcasecmp(prev2_wd, "ON") == 0 && - (toupper(prev_wd[4]) == 'T' || toupper(prev_wd[5]) == 'T')) + (toupper((unsigned char) prev_wd[4]) == 'T' || + toupper((unsigned char) prev_wd[5]) == 'T')) COMPLETE_WITH_CONST("TO"); /* Complete "AS ON TO" with a table name */ else if (strcasecmp(prev4_wd, "AS") == 0 && diff --git a/src/include/regex/regex2.h b/src/include/regex/regex2.h index d6cb23a5d3..f655a1f2a2 100644 --- a/src/include/regex/regex2.h +++ b/src/include/regex/regex2.h @@ -207,8 +207,8 @@ struct re_guts #endif #ifdef MULTIBYTE -#define ISWORD(c) ((c >= 0 && c <= UCHAR_MAX) && \ - (isalnum(c) || (c) == '_')) +#define ISWORD(c) (((c) >= 0 && (c) <= UCHAR_MAX) && \ + (isalnum((unsigned char) (c)) || (c) == '_')) #else -#define ISWORD(c) (isalnum(c) || (c) == '_') +#define ISWORD(c) (isalnum((unsigned char) (c)) || (c) == '_') #endif diff --git a/src/interfaces/ecpg/preproc/pgc.l b/src/interfaces/ecpg/preproc/pgc.l index cd960621df..7965cb629b 100644 --- a/src/interfaces/ecpg/preproc/pgc.l +++ b/src/interfaces/ecpg/preproc/pgc.l @@ -12,7 +12,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/interfaces/ecpg/preproc/pgc.l,v 1.68 2000/11/20 03:51:33 tgl Exp $ + * $Header: /cvsroot/pgsql/src/interfaces/ecpg/preproc/pgc.l,v 1.69 2000/12/03 20:45:38 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -537,8 +537,8 @@ cppline {space}*#(.*\\{line_end})*.* /* this should leave the last byte set to '\0' */ strncpy(lower_text, yytext, NAMEDATALEN-1); for(i = 0; lower_text[i]; i++) - if (isascii((int)lower_text[i]) && isupper((int) lower_text[i])) - lower_text[i] = tolower(lower_text[i]); + if (isupper((unsigned char) lower_text[i])) + lower_text[i] = tolower((unsigned char) lower_text[i]); if (i >= NAMEDATALEN) { @@ -755,7 +755,10 @@ cppline {space}*#(.*\\{line_end})*.* /* skip the ";" and trailing whitespace. Note that yytext contains at least one non-space character plus the ";" */ - for ( i = strlen(yytext)-2; i > 0 && isspace((int) yytext[i]); i-- ) {} + for ( i = strlen(yytext)-2; + i > 0 && isspace((unsigned char) yytext[i]); + i-- ) + {} yytext[i+1] = '\0'; for ( defptr = defines; defptr != NULL && @@ -827,7 +830,10 @@ cppline {space}*#(.*\\{line_end})*.* /* skip the ";" and trailing whitespace. Note that yytext contains at least one non-space character plus the ";" */ - for ( i = strlen(yytext)-2; i > 0 && isspace((int) yytext[i]); i-- ) {} + for ( i = strlen(yytext)-2; + i > 0 && isspace((unsigned char) yytext[i]); + i-- ) + {} yytext[i+1] = '\0'; yyin = NULL; diff --git a/src/interfaces/libpgtcl/pgtclCmds.c b/src/interfaces/libpgtcl/pgtclCmds.c index 9ac6c8a78d..8eb8d27e88 100644 --- a/src/interfaces/libpgtcl/pgtclCmds.c +++ b/src/interfaces/libpgtcl/pgtclCmds.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/interfaces/libpgtcl/Attic/pgtclCmds.c,v 1.50 2000/11/27 13:29:32 wieck Exp $ + * $Header: /cvsroot/pgsql/src/interfaces/libpgtcl/Attic/pgtclCmds.c,v 1.51 2000/12/03 20:45:39 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -1846,7 +1846,7 @@ Pg_listen(ClientData cData, Tcl_Interp *interp, int argc, char *argv[]) char *reld = caserelname; while (*rels) - *reld++ = tolower(*rels++); + *reld++ = tolower((unsigned char) *rels++); *reld = '\0'; } diff --git a/src/interfaces/libpq/fe-connect.c b/src/interfaces/libpq/fe-connect.c index 173ab6c659..7adcba96a8 100644 --- a/src/interfaces/libpq/fe-connect.c +++ b/src/interfaces/libpq/fe-connect.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-connect.c,v 1.152 2000/11/30 23:20:51 tgl Exp $ + * $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-connect.c,v 1.153 2000/12/03 20:45:39 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -2248,20 +2248,21 @@ int parseServiceInfo(PQconninfoOption *options, PQExpBuffer errorMessage) { line[strlen(line)-1] = 0; /* ignore leading blanks */ - while(*line && isspace(line[0])) - line++; + while(*line && isspace((unsigned char) line[0])) + line++; /* ignore comments and empty lines */ if(strlen(line) == 0 || line[0] == '#') - continue; + continue; /* Check for right groupname */ - if(line[0] == '[') { - if(group_found) { - /* group info already read */ - fclose(f); - return 0; - } + if(line[0] == '[') + { + if(group_found) { + /* group info already read */ + fclose(f); + return 0; + } if(strncmp(line+1, service, strlen(service)) == 0 && line[strlen(service)+1] == ']') @@ -2358,7 +2359,7 @@ conninfo_parse(const char *conninfo, PQExpBuffer errorMessage) while (*cp) { /* Skip blanks before the parameter name */ - if (isspace((int) *cp)) + if (isspace((unsigned char) *cp)) { cp++; continue; @@ -2370,12 +2371,12 @@ conninfo_parse(const char *conninfo, PQExpBuffer errorMessage) { if (*cp == '=') break; - if (isspace((int) *cp)) + if (isspace((unsigned char) *cp)) { *cp++ = '\0'; while (*cp) { - if (!isspace((int) *cp)) + if (!isspace((unsigned char) *cp)) break; cp++; } @@ -2399,7 +2400,7 @@ conninfo_parse(const char *conninfo, PQExpBuffer errorMessage) /* Skip blanks after the '=' */ while (*cp) { - if (!isspace((int) *cp)) + if (!isspace((unsigned char) *cp)) break; cp++; } @@ -2412,7 +2413,7 @@ conninfo_parse(const char *conninfo, PQExpBuffer errorMessage) cp2 = pval; while (*cp) { - if (isspace((int) *cp)) + if (isspace((unsigned char) *cp)) { *cp++ = '\0'; break; diff --git a/src/interfaces/libpq/fe-exec.c b/src/interfaces/libpq/fe-exec.c index 53fedf11bd..c5c9aa0660 100644 --- a/src/interfaces/libpq/fe-exec.c +++ b/src/interfaces/libpq/fe-exec.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-exec.c,v 1.96 2000/06/14 18:17:58 petere Exp $ + * $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-exec.c,v 1.97 2000/12/03 20:45:39 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -1955,9 +1955,8 @@ PQfnumber(const PGresult *res, const char *field_name) } else for (i = 0; field_case[i]; i++) - if (isascii((int) field_case[i]) && - isupper((int) field_case[i])) - field_case[i] = tolower(field_case[i]); + if (isupper((unsigned char) field_case[i])) + field_case[i] = tolower((unsigned char) field_case[i]); for (i = 0; i < res->numAttributes; i++) { diff --git a/src/interfaces/odbc/convert.c b/src/interfaces/odbc/convert.c index 876c8402be..95ac701247 100644 --- a/src/interfaces/odbc/convert.c +++ b/src/interfaces/odbc/convert.c @@ -284,9 +284,9 @@ copy_and_convert_field(StatementClass *stmt, Int4 field_type, void *value, Int2 nval++; /* skip the current token */ - while ((*vp != '\0') && (! isspace(*vp))) vp++; + while ((*vp != '\0') && (! isspace((unsigned char) *vp))) vp++; /* and skip the space to the next token */ - while ((*vp != '\0') && (isspace(*vp))) vp++; + while ((*vp != '\0') && (isspace((unsigned char) *vp))) vp++; if (*vp == '\0') break; } @@ -1126,10 +1126,10 @@ static char escape[1024]; char key[33]; /* Separate off the key, skipping leading and trailing whitespace */ - while ((*value != '\0') && isspace(*value)) value++; + while ((*value != '\0') && isspace((unsigned char) *value)) value++; sscanf(value, "%32s", key); - while ((*value != '\0') && (! isspace(*value))) value++; - while ((*value != '\0') && isspace(*value)) value++; + while ((*value != '\0') && (! isspace((unsigned char) *value))) value++; + while ((*value != '\0') && isspace((unsigned char) *value)) value++; mylog("convert_escape: key='%s', val='%s'\n", key, value); @@ -1149,12 +1149,14 @@ char key[33]; char *mapFunc; while ((*funcEnd != '\0') && (*funcEnd != '(') && - (! isspace(*funcEnd))) funcEnd++; + (! isspace((unsigned char) *funcEnd))) + funcEnd++; svchar = *funcEnd; *funcEnd = '\0'; sscanf(value, "%32s", key); *funcEnd = svchar; - while ((*funcEnd != '\0') && isspace(*funcEnd)) funcEnd++; + while ((*funcEnd != '\0') && isspace((unsigned char) *funcEnd)) + funcEnd++; /* We expect left parenthesis here, * else return fn body as-is since it is @@ -1430,18 +1432,18 @@ int i, o=0; void encode(char *in, char *out) { -unsigned int i, o = 0; + unsigned int i, o = 0; for (i = 0; i < strlen(in); i++) { if ( in[i] == '+') { sprintf(&out[o], "%%2B"); o += 3; } - else if ( isspace(in[i])) { + else if ( isspace((unsigned char) in[i])) { out[o++] = '+'; } - else if ( ! isalnum(in[i])) { - sprintf(&out[o], "%%%02x", in[i]); + else if ( ! isalnum((unsigned char) in[i])) { + sprintf(&out[o], "%%%02x", (unsigned char) in[i]); o += 3; } else diff --git a/src/interfaces/odbc/gpps.c b/src/interfaces/odbc/gpps.c index 55a8deba8d..f14e95f2ce 100644 --- a/src/interfaces/odbc/gpps.c +++ b/src/interfaces/odbc/gpps.c @@ -144,8 +144,8 @@ GetPrivateProfileString(char *theSection, /* section name */ { aStart = aLine + 1; aString--; - while (isspace(*aStart)) aStart++; - while (isspace(*aString)) aString--; + while (isspace((unsigned char) *aStart)) aStart++; + while (isspace((unsigned char) *aString)) aString--; *(aString+1) = '\0'; /* accept as matched if NULL key or exact match */ @@ -188,7 +188,7 @@ GetPrivateProfileString(char *theSection, /* section name */ } aStart = aLine; - while(isspace(*aStart)) aStart++; + while (isspace((unsigned char) *aStart)) aStart++; /* strip trailing blanks from key */ diff --git a/src/interfaces/odbc/info.c b/src/interfaces/odbc/info.c index 9d4e75a9e0..f796f8aae9 100644 --- a/src/interfaces/odbc/info.c +++ b/src/interfaces/odbc/info.c @@ -28,7 +28,7 @@ #include "iodbc.h" #include "isql.h" #include "isqlext.h" -#include /* for tolower function */ +#include #else #include #include @@ -2615,7 +2615,7 @@ Int2 result_cols; /* Handle action (i.e., 'cascade', 'restrict', 'setnull') */ - switch(tolower(ptr[0])) { + switch(tolower((unsigned char) ptr[0])) { case 'c': action = SQL_CASCADE; break; diff --git a/src/interfaces/odbc/parse.c b/src/interfaces/odbc/parse.c index dac931a6c3..690a902ec4 100644 --- a/src/interfaces/odbc/parse.c +++ b/src/interfaces/odbc/parse.c @@ -55,7 +55,7 @@ char qc, in_escape = FALSE; smax--; /* skip leading delimiters */ - while (isspace(s[i]) || s[i] == ',') { + while (isspace((unsigned char) s[i]) || s[i] == ',') { /* mylog("skipping '%c'\n", s[i]); */ i++; } @@ -70,7 +70,8 @@ char qc, in_escape = FALSE; if (numeric) *numeric = FALSE; /* get the next token */ - while ( ! isspace(s[i]) && s[i] != ',' && s[i] != '\0' && out != smax) { + while ( ! isspace((unsigned char) s[i]) && s[i] != ',' && + s[i] != '\0' && out != smax) { /* Handle quoted stuff */ if ( out == 0 && (s[i] == '\"' || s[i] == '\'')) { @@ -102,16 +103,16 @@ char qc, in_escape = FALSE; } /* Check for numeric literals */ - if ( out == 0 && isdigit(s[i])) { + if ( out == 0 && isdigit((unsigned char) s[i])) { if (numeric) *numeric = TRUE; token[out++] = s[i++]; - while ( isalnum(s[i]) || s[i] == '.') + while ( isalnum((unsigned char) s[i]) || s[i] == '.') token[out++] = s[i++]; break; } - if ( ispunct(s[i]) && s[i] != '_') { + if ( ispunct((unsigned char) s[i]) && s[i] != '_') { mylog("got ispunct: s[%d] = '%c'\n", i, s[i]); if (out == 0) { @@ -133,7 +134,7 @@ char qc, in_escape = FALSE; token[out] = '\0'; /* find the delimiter */ - while ( isspace(s[i])) + while ( isspace((unsigned char) s[i])) i++; /* return the most priority delimiter */ @@ -148,7 +149,7 @@ char qc, in_escape = FALSE; } /* skip trailing blanks */ - while ( isspace(s[i])) { + while ( isspace((unsigned char) s[i])) { i++; } diff --git a/src/interfaces/perl5/Pg.xs b/src/interfaces/perl5/Pg.xs index 7ff9478df1..fdcec87c79 100644 --- a/src/interfaces/perl5/Pg.xs +++ b/src/interfaces/perl5/Pg.xs @@ -1,6 +1,6 @@ /*------------------------------------------------------- * - * $Id: Pg.xs,v 1.15 2000/10/24 17:00:00 tgl Exp $ with patch for NULs + * $Id: Pg.xs,v 1.16 2000/12/03 20:45:40 tgl Exp $ with patch for NULs * * Copyright (c) 1997, 1998 Edmund Mergl * @@ -215,7 +215,7 @@ PQconnectdb(conninfo) } } else { while (*ptr && *ptr != ' ' && *ptr != '\t') { - *ptr = tolower(*ptr); + *ptr = tolower((unsigned char) *ptr); ptr++; } } @@ -734,7 +734,7 @@ connectdb(conninfo) } } else { while (*ptr && *ptr != ' ' && *ptr != '\t') { - *ptr = tolower(*ptr); + *ptr = tolower((unsigned char) *ptr); ptr++; } } diff --git a/src/pl/plpgsql/src/pl_funcs.c b/src/pl/plpgsql/src/pl_funcs.c index d7059bf3e2..d3bc9d315b 100644 --- a/src/pl/plpgsql/src/pl_funcs.c +++ b/src/pl/plpgsql/src/pl_funcs.c @@ -3,7 +3,7 @@ * procedural language * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/pl/plpgsql/src/pl_funcs.c,v 1.8 2000/09/05 09:02:18 wieck Exp $ + * $Header: /cvsroot/pgsql/src/pl/plpgsql/src/pl_funcs.c,v 1.9 2000/12/03 20:45:40 tgl Exp $ * * This software is copyrighted by Jan Wieck - Hamburg. * @@ -354,8 +354,8 @@ plpgsql_tolower(char *s) } else { - if (isupper((int) *s)) - *cp++ = tolower(*s++); + if (isupper((unsigned char) *s)) + *cp++ = tolower((unsigned char) *s++); else *cp++ = *s++; }