Go back to emitting path names with forward slashes on Windows.
authorTom Lane <tgl@sss.pgh.pa.us>
Thu, 13 Oct 2005 17:58:44 +0000 (17:58 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Thu, 13 Oct 2005 17:58:44 +0000 (17:58 +0000)
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

index 33983a5a9e6ae26e73054fc26a429fdb903a963f..b5ea5265a9d64f0441c2dd775af28891e87fd606 100644 (file)
@@ -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
 }