From: Bruce Momjian Date: Tue, 6 Jun 2006 22:32:19 +0000 (+0000) Subject: On Win32, return original patch if GetShortPathName() fails (no short X-Git-Tag: REL8_2_BETA1~832 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=62e7ad66033f8c0123f419323371b22d14c4402c;p=postgresql On Win32, return original patch if GetShortPathName() fails (no short name, path does not exist), rather than returning nothing. Backpatch to 8.1.X. --- diff --git a/src/bin/pg_config/pg_config.c b/src/bin/pg_config/pg_config.c index e654036a61..cf32be1f2b 100644 --- a/src/bin/pg_config/pg_config.c +++ b/src/bin/pg_config/pg_config.c @@ -17,7 +17,7 @@ * * Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group * - * $PostgreSQL: pgsql/src/bin/pg_config/pg_config.c,v 1.18 2006/03/05 15:58:50 momjian Exp $ + * $PostgreSQL: pgsql/src/bin/pg_config/pg_config.c,v 1.19 2006/06/06 22:32:19 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -35,11 +35,6 @@ static char mypath[MAXPGPATH]; * on Windows. We need them to use filenames without spaces, for which a * short filename is the safest equivalent, eg: * C:/Progra~1/ - * - * This can fail in 2 ways - if the path doesn't exist, or short names are - * disabled. In the first case, don't return any path. In the second case, - * we leave the path in the long form. In this case, it does still seem to - * fix elements containing spaces which is all we actually need. */ static void cleanup_path(char *path) @@ -47,18 +42,12 @@ cleanup_path(char *path) #ifdef WIN32 char *ptr; - if (GetShortPathName(path, path, MAXPGPATH - 1) == 0) - { - /* - * Ignore ERROR_INVALID_PARAMETER as it almost certainly means that - * short names are disabled - */ - if (GetLastError() != ERROR_INVALID_PARAMETER) - { - path[0] = '\0'; - return; - } - } + /* + * GetShortPathName() will fail if the path does not exist, or short names + * are disabled on this file system. In both cases, we just return the + * original path. + */ + GetShortPathName(path, path, MAXPGPATH - 1); /* Replace '\' with '/' */ for (ptr = path; *ptr; ptr++)