Index: src/test/regress/pg_regress.c
===================================================================
RCS file: /projects/cvsroot/pgsql/src/test/regress/pg_regress.c,v
retrieving revision 1.38
diff -c -r1.38 pg_regress.c
*** src/test/regress/pg_regress.c	15 Nov 2007 21:14:46 -0000	1.38
--- src/test/regress/pg_regress.c	26 Nov 2007 14:26:54 -0000
***************
*** 399,407 ****
--- 399,410 ----
  	char		abs_builddir[MAXPGPATH];
  	char		testtablespace[MAXPGPATH];
  	char		indir[MAXPGPATH];
+ 	char		destdir[MAXPGPATH];
  	char	  **name;
  	char	  **names;
  	int			count = 0;
+ 	struct stat	st;
+ 	int		ret;
  
  #ifdef WIN32
  	char	   *c;
***************
*** 424,429 ****
--- 427,450 ----
  		strcpy(abs_srcdir, abs_builddir);
  
  	snprintf(indir, MAXPGPATH, "%s/%s", abs_srcdir, source);
+ 	snprintf(destdir, MAXPGPATH, "%s/%s", abs_srcdir, dest);
+ 
+ 	ret = stat(indir, &st);
+ 	if ((ret != 0) || (!S_ISDIR(st.st_mode)))
+ 	{
+ 		fprintf(stderr, _("%s: could not find input directory \"%s\": %s\n"),
+ 				progname, indir, strerror(errno));
+ 		exit_nicely(2);
+ 	}
+ 
+ 	ret = stat(destdir, &st);
+ 	if ((ret != 0) || (!S_ISDIR(st.st_mode)))
+ 	{
+ 		fprintf(stderr, _("%s: could not find destination directory \"%s\": %s\n"),
+ 				progname, destdir, strerror(errno));
+ 		exit_nicely(2);
+ 	}
+ 
  	names = pgfnames(indir);
  	if (!names)
  		/* Error logged in pgfnames */
***************
*** 466,472 ****
  		/* build the full actual paths to open */
  		snprintf(prefix, strlen(*name) - 6, "%s", *name);
  		snprintf(srcfile, MAXPGPATH, "%s/%s", indir, *name);
! 		snprintf(destfile, MAXPGPATH, "%s/%s.%s", dest, prefix, suffix);
  
  		infile = fopen(srcfile, "r");
  		if (!infile)
--- 487,493 ----
  		/* build the full actual paths to open */
  		snprintf(prefix, strlen(*name) - 6, "%s", *name);
  		snprintf(srcfile, MAXPGPATH, "%s/%s", indir, *name);
! 		snprintf(destfile, MAXPGPATH, "%s/%s.%s", destdir, prefix, suffix);
  
  		infile = fopen(srcfile, "r");
  		if (!infile)
***************
*** 508,527 ****
  	pgfnames_cleanup(names);
  }
  
! /* Create the .sql and .out files from the .source files, if any */
  static void
  convert_sourcefiles(void)
  {
! 	struct stat st;
! 	int			ret;
! 
! 	ret = stat("input", &st);
! 	if (ret == 0 && S_ISDIR(st.st_mode))
! 		convert_sourcefiles_in("input", "sql", "sql");
! 
! 	ret = stat("output", &st);
! 	if (ret == 0 && S_ISDIR(st.st_mode))
! 		convert_sourcefiles_in("output", "expected", "out");
  }
  
  /*
--- 529,540 ----
  	pgfnames_cleanup(names);
  }
  
! /* Create the .sql and .out files from the .source files */
  static void
  convert_sourcefiles(void)
  {
! 	convert_sourcefiles_in("input", "sql", "sql");
! 	convert_sourcefiles_in("output", "expected", "out");
  }
  
  /*
