diff --git a/src/bin/initdb/initdb.c b/src/bin/initdb/initdb.c index 5a9139cf10..cb44f7d0ad 100644 --- a/src/bin/initdb/initdb.c +++ b/src/bin/initdb/initdb.c @@ -43,7 +43,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * Portions taken from FreeBSD. * - * $PostgreSQL: pgsql/src/bin/initdb/initdb.c,v 1.22 2004/02/02 00:11:31 momjian Exp $ + * $PostgreSQL: pgsql/src/bin/initdb/initdb.c,v 1.23 2004/03/09 04:49:02 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -151,7 +151,6 @@ char *pgpath; /* forward declare all our functions */ static bool rmtree(char *, bool); static void exit_nicely(void); -static void canonicalize_path(char *); #ifdef WIN32 static char *expanded_path(char *); #else @@ -288,31 +287,6 @@ rmtree(char *path, bool rmtopdir) } -/* - * make all paths look like unix, with forward slashes - * also strip any trailing slash. - * - * The Windows command processor will accept suitably quoted paths - * with forward slashes, but barfs badly with mixed forward and back - * slashes. Removing the trailing slash on a path means we never get - * ugly double slashes. Don't remove a leading slash, though. - */ -static void -canonicalize_path(char *path) -{ - char *p; - - for (p = path; *p; p++) - { -#ifdef WIN32 - if (*p == '\\') - *p = '/'; -#endif - } - if (p > path+1 && *--p == '/') - *p = '\0'; -} - /* * make a copy of the array of lines, with token replaced by replacement * the first time it occurs on each line. diff --git a/src/include/port.h b/src/include/port.h index d96ef4a6d1..fefdff117e 100644 --- a/src/include/port.h +++ b/src/include/port.h @@ -6,7 +6,7 @@ * Portions Copyright (c) 1996-2003, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/port.h,v 1.20 2004/02/25 19:41:23 momjian Exp $ + * $PostgreSQL: pgsql/src/include/port.h,v 1.21 2004/03/09 04:49:02 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -21,6 +21,7 @@ extern bool is_absolute_path(const char *filename); extern char *first_path_separator(const char *filename); extern char *last_path_separator(const char *filename); +extern void canonicalize_path(char *path); extern char *get_progname(char *argv0); /* Portable delay handling */ diff --git a/src/port/path.c b/src/port/path.c index c093efa4bc..3f672d5b22 100644 --- a/src/port/path.c +++ b/src/port/path.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/port/path.c,v 1.4 2003/11/29 19:52:13 pgsql Exp $ + * $PostgreSQL: pgsql/src/port/path.c,v 1.5 2004/03/09 04:49:02 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -84,6 +84,32 @@ last_path_separator(const char *filename) } +/* + * make all paths look like unix, with forward slashes + * also strip any trailing slash. + * + * The Windows command processor will accept suitably quoted paths + * with forward slashes, but barfs badly with mixed forward and back + * slashes. Removing the trailing slash on a path means we never get + * ugly double slashes. Don't remove a leading slash, though. + */ +void +canonicalize_path(char *path) +{ + char *p; + + for (p = path; *p; p++) + { +#ifdef WIN32 + if (*p == '\\') + *p = '/'; +#endif + } + if (p > path+1 && *--p == '/') + *p = '\0'; +} + + /* * Extracts the actual name of the program as called. */