|
8 | 8 | *
|
9 | 9 | *
|
10 | 10 | * IDENTIFICATION
|
11 |
| - * $Header: /cvsroot/pgsql/src/backend/utils/fmgr/dfmgr.c,v 1.57 2002/09/02 02:47:05 momjian Exp $ |
| 11 | + * $Header: /cvsroot/pgsql/src/backend/utils/fmgr/dfmgr.c,v 1.58 2003/04/04 20:42:12 momjian Exp $ |
12 | 12 | *
|
13 | 13 | *-------------------------------------------------------------------------
|
14 | 14 | */
|
@@ -271,7 +271,7 @@ expand_dynamic_library_name(const char *name)
|
271 | 271 |
|
272 | 272 | AssertArg(name);
|
273 | 273 |
|
274 |
| - have_slash = (strchr(name, '/') != NULL); |
| 274 | + have_slash = (first_path_separator(name) != NULL); |
275 | 275 |
|
276 | 276 | if (!have_slash)
|
277 | 277 | {
|
@@ -326,7 +326,13 @@ substitute_libpath_macro(const char *name)
|
326 | 326 | if (name[0] != '$')
|
327 | 327 | return pstrdup(name);
|
328 | 328 |
|
329 |
| - macroname_len = strcspn(name + 1, "/") + 1; |
| 329 | + macroname_len = strcspn(name + 1, |
| 330 | +#ifndef WIN32 |
| 331 | + "/" |
| 332 | +#else |
| 333 | + "/\\" |
| 334 | +#endif |
| 335 | + ) + 1; |
330 | 336 |
|
331 | 337 | if (strncmp(name, "$libdir", macroname_len) == 0)
|
332 | 338 | replacement = PKGLIBDIR;
|
@@ -362,7 +368,7 @@ find_in_dynamic_libpath(const char *basename)
|
362 | 368 | size_t baselen;
|
363 | 369 |
|
364 | 370 | AssertArg(basename != NULL);
|
365 |
| - AssertArg(strchr(basename, '/') == NULL); |
| 371 | + AssertArg(first_path_separator(basename) == NULL); |
366 | 372 | AssertState(Dynamic_library_path != NULL);
|
367 | 373 |
|
368 | 374 | p = Dynamic_library_path;
|
@@ -391,7 +397,7 @@ find_in_dynamic_libpath(const char *basename)
|
391 | 397 | pfree(piece);
|
392 | 398 |
|
393 | 399 | /* only absolute paths */
|
394 |
| - if (mangled[0] != '/') |
| 400 | + if (!is_absolute_path(mangled)) |
395 | 401 | elog(ERROR, "dynamic_library_path component is not absolute");
|
396 | 402 |
|
397 | 403 | full = palloc(strlen(mangled) + 1 + baselen + 1);
|
|
0 commit comments