diff --git a/src/backend/utils/adt/like_match.c b/src/backend/utils/adt/like_match.c index 915b9bd0d7ef4f7a1f5311bad10311808d4a4216..4a8f96c7d40e807ede4fb838f19850dcb6d38f1a 100644 --- a/src/backend/utils/adt/like_match.c +++ b/src/backend/utils/adt/like_match.c @@ -19,7 +19,7 @@ * Copyright (c) 1996-2008, PostgreSQL Global Development Group * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/utils/adt/like_match.c,v 1.20 2008/01/01 19:45:52 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/utils/adt/like_match.c,v 1.21 2008/03/01 03:26:34 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -71,7 +71,7 @@ */ #ifdef MATCH_LOWER -#define TCHAR(t) tolower((t)) +#define TCHAR(t) ((char) tolower((unsigned char) (t))) #else #define TCHAR(t) (t) #endif diff --git a/src/interfaces/ecpg/ecpglib/execute.c b/src/interfaces/ecpg/ecpglib/execute.c index 20231c62a7df806108bcce8d98dd772ba96dab6f..f7bfd9dca7f8775173a70c9a32e4cae92c83d5e4 100644 --- a/src/interfaces/ecpg/ecpglib/execute.c +++ b/src/interfaces/ecpg/ecpglib/execute.c @@ -1,4 +1,4 @@ -/* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/execute.c,v 1.76 2008/02/07 11:09:12 meskes Exp $ */ +/* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/execute.c,v 1.77 2008/03/01 03:26:34 tgl Exp $ */ /* * The aim is to get a simpler inteface to the database routines. @@ -122,13 +122,15 @@ next_insert(char *text, int pos, bool questionmarks) string = string ? false : true; else if (!string) { - if (text[p] == '$' && isdigit(text[p + 1])) + if (text[p] == '$' && isdigit((unsigned char) text[p + 1])) { /* this can be either a dollar quote or a variable */ int i; - for (i = p + 1; isdigit(text[i]); i++); - if (!isalpha(text[i]) && isascii(text[i]) && text[i] != '_') + for (i = p + 1; isdigit((unsigned char) text[i]); i++) + /* empty loop body */ ; + if (!isalpha((unsigned char) text[i]) && + isascii((unsigned char) text[i]) && text[i] != '_') /* not dollar delimited quote */ return p; } diff --git a/src/interfaces/ecpg/preproc/preproc.y b/src/interfaces/ecpg/preproc/preproc.y index 43efc431dba1693cd5a4205c29389281228d1344..0cc168b90643787e2a25dbe8fda16a21ade44b4d 100644 --- a/src/interfaces/ecpg/preproc/preproc.y +++ b/src/interfaces/ecpg/preproc/preproc.y @@ -1,4 +1,4 @@ -/* $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/preproc.y,v 1.361 2008/02/15 22:17:06 tgl Exp $ */ +/* $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/preproc.y,v 1.362 2008/03/01 03:26:35 tgl Exp $ */ /* Copyright comment */ %{ @@ -5847,7 +5847,7 @@ prepared_name: name { int i; for (i = 0; i< strlen($1); i++) - $1[i] = tolower($1[i]); + $1[i] = tolower((unsigned char) $1[i]); $$ = make3_str(make_str("\""), $1, make_str("\"")); }