summaryrefslogtreecommitdiff
path: root/src/backend/utils/init
diff options
context:
space:
mode:
authorBruce Momjian2003-04-04 20:42:13 +0000
committerBruce Momjian2003-04-04 20:42:13 +0000
commitd46e6438225d8741100dc400a4a63c87799f0945 (patch)
treec20b838ead99ca2558a188b84595115538c02dd2 /src/backend/utils/init
parent9bad936f67cb7561d0d232ca365e23fe73219a1a (diff)
Add Win32 path handling for / vs. \ and drive letters.
Diffstat (limited to 'src/backend/utils/init')
-rw-r--r--src/backend/utils/init/findbe.c10
-rw-r--r--src/backend/utils/init/miscinit.c10
2 files changed, 12 insertions, 8 deletions
diff --git a/src/backend/utils/init/findbe.c b/src/backend/utils/init/findbe.c
index ce5c521f3e0..94d744bce9c 100644
--- a/src/backend/utils/init/findbe.c
+++ b/src/backend/utils/init/findbe.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/init/Attic/findbe.c,v 1.31 2002/11/02 15:54:13 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/init/Attic/findbe.c,v 1.32 2003/04/04 20:42:12 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -159,14 +159,14 @@ FindExec(char *full_path, const char *argv0, const char *binary_name)
* (making sure that a relative path is made absolute before returning
* it).
*/
- if (argv0 && (p = strrchr(argv0, '/')) && *++p)
+ if (argv0 && (p = last_path_separator(argv0)) && *++p)
{
- if (*argv0 == '/' || !getcwd(buf, MAXPGPATH))
+ if (is_absolute_path(argv0) || !getcwd(buf, MAXPGPATH))
buf[0] = '\0';
else
strcat(buf, "/");
strcat(buf, argv0);
- p = strrchr(buf, '/');
+ p = last_path_separator(buf);
strcpy(++p, binary_name);
if (ValidateBinary(buf) == 0)
{
@@ -194,7 +194,7 @@ FindExec(char *full_path, const char *argv0, const char *binary_name)
continue;
if (endp)
*endp = '\0';
- if (*startp == '/' || !getcwd(buf, MAXPGPATH))
+ if (is_absolute_path(startp) || !getcwd(buf, MAXPGPATH))
buf[0] = '\0';
else
strcat(buf, "/");
diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c
index 8b49ca2e584..6ffd1e01b97 100644
--- a/src/backend/utils/init/miscinit.c
+++ b/src/backend/utils/init/miscinit.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/init/miscinit.c,v 1.101 2003/03/20 04:51:44 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/init/miscinit.c,v 1.102 2003/04/04 20:42:12 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -134,7 +134,7 @@ SetDataDir(const char *dir)
AssertArg(dir);
/* If presented path is relative, convert to absolute */
- if (dir[0] != '/')
+ if (!is_absolute_path(dir))
{
char *buf;
size_t buflen;
@@ -179,7 +179,11 @@ SetDataDir(const char *dir)
* generating funny-looking paths to individual files.
*/
newlen = strlen(new);
- if (newlen > 1 && new[newlen - 1] == '/')
+ if (newlen > 1 && new[newlen - 1] == '/'
+#ifdef WIN32
+ || new[newlen - 1] == '\\'
+#endif
+ )
new[newlen - 1] = '\0';
if (DataDir)