Fix trim_trailing_separator() to not trim c:\ nor \\network\ on Win32.

This commit is contained in:
Bruce Momjian 2004-07-11 02:59:42 +00:00
parent eee93173d4
commit ff2fbacc42
1 changed files with 21 additions and 2 deletions

View 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--)