mirror of
https://github.com/postgres/postgres.git
synced 2025-09-08 00:47:37 +03:00
Fix unportable usages of tolower(). On signed-char machines, it is necessary
to explicitly cast the output back to char before comparing it to a char value, else we get the wrong result for high-bit-set characters. Found by Rolf Jentsch. Also, fix several places where <ctype.h> functions were being called without casting the argument to unsigned char; this is likewise unportable, but we keep making that mistake :-(. These found by buildfarm member salamander, which I will desperately miss if it ever goes belly-up.
This commit is contained in:
@@ -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
|
||||
|
Reference in New Issue
Block a user