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

Reply via email to