]> granicus.if.org Git - postgresql/commitdiff
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
 }