From 7038554c4ef2149ec08d4fdaff04743d5153873b Mon Sep 17 00:00:00 2001
From: Peter Eisentraut <peter_e@gmx.net>
Date: Sun, 6 May 2001 17:38:32 +0000
Subject: [PATCH] Allow 'psql -f -' to read from standard input.

---
 doc/src/sgml/ref/psql-ref.sgml | 8 +++++++-
 src/bin/psql/startup.c         | 6 ++++--
 2 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/doc/src/sgml/ref/psql-ref.sgml b/doc/src/sgml/ref/psql-ref.sgml
index 9fbafcc8814..06b0cbb2b17 100644
--- a/doc/src/sgml/ref/psql-ref.sgml
+++ b/doc/src/sgml/ref/psql-ref.sgml
@@ -1,5 +1,5 @@
 <!--
-$Header: /cvsroot/pgsql/doc/src/sgml/ref/psql-ref.sgml,v 1.48 2001/05/06 17:21:11 petere Exp $
+$Header: /cvsroot/pgsql/doc/src/sgml/ref/psql-ref.sgml,v 1.49 2001/05/06 17:38:31 petere Exp $
 Postgres documentation
 -->
 
@@ -1292,6 +1292,12 @@ Access permissions for database "test"
       After the file is processed, <application>psql</application> terminates.
       This is in many ways equivalent to the internal command <command>\i</command>.
       </para>
+
+      <para>
+       If <replaceable>filename</replaceable> is <literal>-</literal>
+       (hyphen), then standard input is read.
+      </para>
+
       <para>
       Using this option is subtly different from writing
       <literal>psql &lt; <replaceable class="parameter">filename</replaceable></literal>.
diff --git a/src/bin/psql/startup.c b/src/bin/psql/startup.c
index 5729b3e27e5..3d38afaf6ba 100644
--- a/src/bin/psql/startup.c
+++ b/src/bin/psql/startup.c
@@ -3,7 +3,7 @@
  *
  * Copyright 2000 by PostgreSQL Global Development Group
  *
- * $Header: /cvsroot/pgsql/src/bin/psql/startup.c,v 1.46 2001/03/23 00:36:38 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/bin/psql/startup.c,v 1.47 2001/05/06 17:38:32 petere Exp $
  */
 #include "postgres_fe.h"
 
@@ -230,7 +230,7 @@ main(int argc, char *argv[])
 	/*
 	 * process file given by -f
 	 */
-	if (options.action == ACT_FILE)
+	if (options.action == ACT_FILE && strcmp(options.action_string, "-")!=0)
 	{
 		if (!options.no_psqlrc)
 			process_psqlrc();
@@ -290,6 +290,8 @@ main(int argc, char *argv[])
 			process_psqlrc();
 		if (!pset.notty)
 			initializeInput(options.no_readline ? 0 : 1);
+		if (options.action_string) /* -f - was used */
+			pset.inputfile = "<stdin>";
 		successResult = MainLoop(stdin);
 	}
 
-- 
GitLab