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 @@
@@ -1292,6 +1292,12 @@ Access permissions for database "test"
After the file is processed, psql terminates.
This is in many ways equivalent to the internal command \i.
+
+
+ If filename is -
+ (hyphen), then standard input is read.
+
+
Using this option is subtly different from writing
psql < filename.
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 = "";
successResult = MainLoop(stdin);
}