From a0fc05aa6ea7ac4a099f03babaea5929d6512a82 Mon Sep 17 00:00:00 2001
From: Tom Lane <tgl@sss.pgh.pa.us>
Date: Thu, 13 Oct 2005 17:58:44 +0000
Subject: [PATCH] Go back to emitting path names with forward slashes on
 Windows. I'm not clear on what the double-backslash idea was intended to fix,
 but it breaks at least mingw GNU Make.  Per report from Thomas Hallgren.

---
 src/bin/pg_config/pg_config.c | 39 +++++++++--------------------------
 1 file changed, 10 insertions(+), 29 deletions(-)

diff --git a/src/bin/pg_config/pg_config.c b/src/bin/pg_config/pg_config.c
index 33983a5a9e6..b5ea5265a9d 100644
--- a/src/bin/pg_config/pg_config.c
+++ b/src/bin/pg_config/pg_config.c
@@ -17,7 +17,7 @@
  *
  * Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
  *
- * $PostgreSQL: pgsql/src/bin/pg_config/pg_config.c,v 1.15 2005/10/06 12:04:58 petere Exp $
+ * $PostgreSQL: pgsql/src/bin/pg_config/pg_config.c,v 1.16 2005/10/13 17:58:44 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -32,9 +32,9 @@ static char		mypath[MAXPGPATH];
 
 /*
  * This function cleans up the paths for use with either cmd.exe or Msys
- * on Windows. We need them to use double backslashes and filenames without
- * spaces (for which a short filename is the safest equivalent) eg:
- * C:\\Progra~1\\
+ * on Windows. We need them to use filenames without spaces, for which a
+ * short filename is the safest equivalent, eg:
+ *		C:/Progra~1/
  *
  * This can fail in 2 ways - if the path doesn't exist, or short names are
  * disabled. In the first case, don't return any path. In the second case, 
@@ -45,8 +45,7 @@ static void
 cleanup_path(char *path)
 {
 #ifdef WIN32
-	int	x=0, y=0;
-	char	temp[MAXPGPATH];
+	char	   *ptr;
 
 	if (GetShortPathName(path, path, MAXPGPATH - 1) == 0)
 	{
@@ -59,31 +58,13 @@ cleanup_path(char *path)
 			return;
 		}
 	}
-		
 
-	/* Replace '\' with '\\'. */
-	for (x = 0; x < strlen(path); x++)
-        {
-		if (path[x] == '/' || path[x] == '\\')
-		{
-			temp[y] = '\\';
-			y++;
-			temp[y] = '\\';
-		}
-		else
-		{
-			temp[y] = path[x];
-		}
-
-		y++;
-
-		/* Bail out if we're too close to MAXPGPATH */
-		if (y >= MAXPGPATH - 2)
-			break;
+	/* Replace '\' with '/' */
+	for (ptr = path; *ptr; ptr++)
+	{
+		if (*ptr == '\\')
+			*ptr = '/';
 	}
-	temp[y] = '\0';
-
-	strncpy(path, temp, MAXPGPATH - 1);
 #endif
 }
 
-- 
GitLab