1
0
mirror of https://github.com/postgres/postgres.git synced 2025-11-12 05:01:15 +03:00

Add Win32 path handling for / vs. \ and drive letters.

This commit is contained in:
Bruce Momjian
2003-04-04 20:42:13 +00:00
parent 9bad936f67
commit d46e643822
22 changed files with 147 additions and 88 deletions

View File

@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/utils/fmgr/dfmgr.c,v 1.57 2002/09/02 02:47:05 momjian Exp $
* $Header: /cvsroot/pgsql/src/backend/utils/fmgr/dfmgr.c,v 1.58 2003/04/04 20:42:12 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -271,7 +271,7 @@ expand_dynamic_library_name(const char *name)
AssertArg(name);
have_slash = (strchr(name, '/') != NULL);
have_slash = (first_path_separator(name) != NULL);
if (!have_slash)
{
@@ -326,7 +326,13 @@ substitute_libpath_macro(const char *name)
if (name[0] != '$')
return pstrdup(name);
macroname_len = strcspn(name + 1, "/") + 1;
macroname_len = strcspn(name + 1,
#ifndef WIN32
"/"
#else
"/\\"
#endif
) + 1;
if (strncmp(name, "$libdir", macroname_len) == 0)
replacement = PKGLIBDIR;
@@ -362,7 +368,7 @@ find_in_dynamic_libpath(const char *basename)
size_t baselen;
AssertArg(basename != NULL);
AssertArg(strchr(basename, '/') == NULL);
AssertArg(first_path_separator(basename) == NULL);
AssertState(Dynamic_library_path != NULL);
p = Dynamic_library_path;
@@ -391,7 +397,7 @@ find_in_dynamic_libpath(const char *basename)
pfree(piece);
/* only absolute paths */
if (mangled[0] != '/')
if (!is_absolute_path(mangled))
elog(ERROR, "dynamic_library_path component is not absolute");
full = palloc(strlen(mangled) + 1 + baselen + 1);