aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMagnus Hagander <magnus@hagander.net>2009-04-03 11:52:08 +0000
committerMagnus Hagander <magnus@hagander.net>2009-04-03 11:52:08 +0000
commitaa38153d22df190397f851cfbd4506f31f44557e (patch)
treed1ce05ae7c9e85ed7afd68ba43a2ce030a5b7dcf
parentd0b599012f52f4f06847a87dadfd70b47f7c5265 (diff)
downloadpostgresql-aa38153d22df190397f851cfbd4506f31f44557e.tar.gz
postgresql-aa38153d22df190397f851cfbd4506f31f44557e.zip
Make directory name comparisons on Win32 case insensitive.
This method will not catch all different ways since the locale handling in NTFS doesn't provide an easy way to do that, but it will hopefully solve the most common cases causing startup problems when the backend is found in the system PATH. Attempts to fix bug #4694.
-rw-r--r--src/port/path.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/port/path.c b/src/port/path.c
index 62121da6717..bf3547a2cd1 100644
--- a/src/port/path.c
+++ b/src/port/path.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/port/path.c,v 1.76 2009/01/01 17:24:04 momjian Exp $
+ * $PostgreSQL: pgsql/src/port/path.c,v 1.77 2009/04/03 11:52:08 mha Exp $
*
*-------------------------------------------------------------------------
*/
@@ -427,7 +427,12 @@ dir_strcmp(const char *s1, const char *s2)
{
while (*s1 && *s2)
{
+#ifndef WIN32
if (*s1 != *s2 &&
+#else
+ /* On windows, paths are case-insensitive */
+ if (pg_tolower(*s1) != pg_tolower(*s2) &&
+#endif
!(IS_DIR_SEP(*s1) && IS_DIR_SEP(*s2)))
return (int) *s1 - (int) *s2;
s1++, s2++;