From ee814b4511ecdb3c94c2f929c35b25e18883b1ca Mon Sep 17 00:00:00 2001
From: Bruce Momjian <bruce@momjian.us>
Date: Mon, 29 Nov 2004 01:14:45 +0000
Subject: [PATCH] Have initdb display relative paths to start postmaster if
 used to invoke initdb, and display in a path-native way.

---
 src/bin/initdb/initdb.c | 21 ++++++++++++++++-----
 1 file changed, 16 insertions(+), 5 deletions(-)

diff --git a/src/bin/initdb/initdb.c b/src/bin/initdb/initdb.c
index a0b2f3357eb..3b775e99acb 100644
--- a/src/bin/initdb/initdb.c
+++ b/src/bin/initdb/initdb.c
@@ -39,7 +39,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  * Portions taken from FreeBSD.
  *
- * $PostgreSQL: pgsql/src/bin/initdb/initdb.c,v 1.68 2004/11/27 18:51:05 tgl Exp $
+ * $PostgreSQL: pgsql/src/bin/initdb/initdb.c,v 1.69 2004/11/29 01:14:45 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -216,8 +216,10 @@ do { \
 
 #ifndef WIN32
 #define QUOTE_PATH	""
+#define DIR_SEP "/"
 #else
 #define QUOTE_PATH	"\""
+#define DIR_SEP "\\"
 #endif
 
 /*
@@ -2079,6 +2081,8 @@ main(int argc, char *argv[])
 	char	   *short_version;
 	char	   *pgdenv;			/* PGDATA value gotten from and sent to
 								 * environment */
+	char		bin_dir[MAXPGPATH];
+	char		*pg_data_native;
 	static const char *subdirs[] = {
 		"global",
 		"pg_xlog",
@@ -2256,6 +2260,7 @@ main(int argc, char *argv[])
 		}
 	}
 
+	pg_data_native = pg_data;
 	canonicalize_path(pg_data);
 
 	/*
@@ -2567,12 +2572,18 @@ main(int argc, char *argv[])
 	if (authwarning != NULL)
 		fprintf(stderr, authwarning);
 
+	/* Get directory specification used to start this executable */
+	strcpy(bin_dir, argv[0]);
+	get_parent_directory(bin_dir);
+	
 	printf(_("\nSuccess. You can now start the database server using:\n\n"
-			 "    %s%s%s/postmaster -D %s%s%s\n"
+			 "    %s%s%s%spostmaster -D %s%s%s\n"
 			 "or\n"
-			 "    %s%s%s/pg_ctl -D %s%s%s -l logfile start\n\n"),
-	   QUOTE_PATH, bin_path, QUOTE_PATH, QUOTE_PATH, pg_data, QUOTE_PATH,
-	  QUOTE_PATH, bin_path, QUOTE_PATH, QUOTE_PATH, pg_data, QUOTE_PATH);
+			 "    %s%s%s%spg_ctl -D %s%s%s -l logfile start\n\n"),
+	  QUOTE_PATH, bin_dir, QUOTE_PATH, (strlen(bin_dir) > 0) ? DIR_SEP : "",
+	  QUOTE_PATH, pg_data_native, QUOTE_PATH,
+	  QUOTE_PATH, bin_dir, QUOTE_PATH, (strlen(bin_dir) > 0) ? DIR_SEP : "",
+	  QUOTE_PATH, pg_data_native, QUOTE_PATH);
 
 	return 0;
 }
-- 
GitLab