Allow 'psql -f -' to read from standard input.

This commit is contained in:
Peter Eisentraut 2001-05-06 17:38:32 +00:00
parent 84e8e5b427
commit 7038554c4e
2 changed files with 11 additions and 3 deletions

View File

@ -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>.

View File

@ -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);
}