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)"));
---------------------------(end of broadcast)---------------------------
TIP 3: if posting/reading through Usenet, please send an appropriate
subscribe-nomail command to [EMAIL PROTECTED] so that your
message can get through to the mailing list cleanly