Index: src/bin/pg_config/pg_config.c
===================================================================
RCS file: /cvsroot/pgsql/src/bin/pg_config/pg_config.c,v
retrieving revision 1.18
diff -c -c -r1.18 pg_config.c
*** src/bin/pg_config/pg_config.c	5 Mar 2006 15:58:50 -0000	1.18
--- src/bin/pg_config/pg_config.c	6 Jun 2006 19:03:53 -0000
***************
*** 35,45 ****
   * 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)
--- 35,40 ----
***************
*** 47,64 ****
  #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;
! 		}
! 	}
  
  	/* Replace '\' with '/' */
  	for (ptr = path; *ptr; ptr++)
--- 42,53 ----
  #ifdef WIN32
  	char	   *ptr;
  
! 	/*
! 	 *	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++)
