]> granicus.if.org Git - postgresql/commitdiff
Fix trim_trailing_separator() to not trim c:\ nor \\network\ on Win32.
authorBruce Momjian <bruce@momjian.us>
Sun, 11 Jul 2004 02:59:42 +0000 (02:59 +0000)
committerBruce Momjian <bruce@momjian.us>
Sun, 11 Jul 2004 02:59:42 +0000 (02:59 +0000)
src/port/path.c

index 7621e39a0d6f4e10a3543ba1f01086a88f1156db..8646eacc0644b3456072963cd6a3c3f3cf244e8b 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *       $PostgreSQL: pgsql/src/port/path.c,v 1.21 2004/07/10 22:58:42 tgl Exp $
+ *       $PostgreSQL: pgsql/src/port/path.c,v 1.22 2004/07/11 02:59:42 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -389,7 +389,26 @@ static void
 trim_trailing_separator(char *path)
 {
        char *p = path + strlen(path);
-       
+
+#ifdef WIN32
+    /* Skip over network and drive specifiers for win32 */
+    if (strlen(path) >= 2)
+    {
+        if (IS_DIR_SEP(path[0]) && IS_DIR_SEP(path[1]))
+        {
+               path += 2;
+                       while (*path && !IS_DIR_SEP(*path))
+                               path++;
+               }
+        else if (isalpha(path[0]) && path[1] == ':')
+        {
+            path++;
+               if (IS_DIR_SEP(path[1]))
+               path++;
+       }
+    }
+#endif
+
        /* trim off trailing slashes */
        if (p > path)
                for (p--; p > path && IS_DIR_SEP(*p); p--)