Skip site navigation (1) Skip section navigation (2)

Peripheral Links

Header And Logo

PostgreSQL
| The world's most advanced open source database.

Site Navigation

Search for
  Advanced Search

Proposal: psql force prompting on notty



I'm the maintainer of sql.el in GNU Emacs.  On both the Mac OS X 
and the Windows/Cygwin platform we've had reports that psql run 
under Emacs does not issue a prompt for commands.  

I did a little research and it appears that the cause is that 
pset.notty is being set to false because stdin/stdout are not 
a tty (pgsql-server/src/bin/psql/startup.c).  I'd like to 
propose that an option be added to the psql command line to 
override the detection of the tty and force the prompting for 
commands on stdin.  

I believe the attached patch should add the option -I to psql 
and force the prompt to appear as if it were an interactive 
session regardless of the state of stdin/stdout.  I do not 
have a configuration available to properly test this however.

Please be sure to include me in any replies since I do not 
subscribe to this list.  TIA.

-- Michael

__________________________________
Do you Yahoo!?
Yahoo! SiteBuilder - Free, easy-to-use web site design software
http://sitebuilder.yahoo.com
--- pgsql-server/src/bin/psql/startup.c	29 Sep 2003 18:21:33 -0000	1.80
+++ pgsql-server/src/bin/psql/startup.c	01 Nov 2003 06:10:42 -0000
@@ -322,6 +322,7 @@
 		{"field-separator", required_argument, NULL, 'F'},
 		{"host", required_argument, NULL, 'h'},
 		{"html", no_argument, NULL, 'H'},
+		{"interactive", no_argument, NULL, 'I'},
 		{"list", no_argument, NULL, 'l'},
 		{"no-readline", no_argument, NULL, 'n'},
 		{"output", required_argument, NULL, 'o'},
@@ -352,7 +353,7 @@

 	memset(options, 0, sizeof *options);

-	while ((c = getopt_long(argc, argv, "aAc:d:eEf:F:h:Hlno:p:P:qR:sStT:uU:v:VWxX?",
+	while ((c = getopt_long(argc, argv, "aAc:d:eEf:F:h:HlMno:p:P:qR:sStT:uU:v:VWxX?",
 							long_options, &optindex)) != -1)
 	{
 		switch (c)
@@ -395,7 +396,10 @@
 			case 'H':
 				pset.popt.topt.format = PRINT_HTML;
 				break;
+			case 'I':
+				pset.notty = 0;
+				break;
 			case 'l':
 				options->action = ACT_LIST_DB;
 				break;
--- pgsql-server/src/bin/psql/help.c	02 Oct 2003 06:39:31 -0000	1.81
+++ pgsql-server/src/bin/psql/help.c	01 Nov 2003 06:29:50 -0000
@@ -103,6 +103,7 @@
 	puts(_("  -a              echo all input from script"));
 	puts(_("  -e              echo commands sent to server"));
 	puts(_("  -E              display queries that internal commands generate"));
+	puts(_("  -I              force interactive prompting for input"));
 	puts(_("  -q              run quietly (no messages, only query output)"));
 	puts(_("  -o FILENAME     send query results to file (or |pipe)"));
 	puts(_("  -n              disable enhanced command line editing (readline)"));


Home | Main Index | Thread Index

Privacy Policy | PostgreSQL Archives hosted by Command Prompt, Inc. | Designed by tinysofa
Copyright © 1996 – 2008 PostgreSQL Global Development Group