Use DEVTTY as 'con' on Win32 as a replacement for /dev/tty.
authorBruce Momjian <bruce@momjian.us>
Sat, 4 Mar 2006 04:30:41 +0000 (04:30 +0000)
committerBruce Momjian <bruce@momjian.us>
Sat, 4 Mar 2006 04:30:41 +0000 (04:30 +0000)
src/bin/psql/command.c
src/include/port.h
src/port/sprompt.c

index 2ff454c8427692e171c8241beb16cb8eda093eb8..bf851bfbc4973105f861e680d5d75dd5a3ff11e7 100644 (file)
@@ -3,7 +3,7 @@
  *
  * Copyright (c) 2000-2005, PostgreSQL Global Development Group
  *
- * $PostgreSQL: pgsql/src/bin/psql/command.c,v 1.162 2006/03/03 23:49:12 momjian Exp $
+ * $PostgreSQL: pgsql/src/bin/psql/command.c,v 1.163 2006/03/04 04:30:40 momjian Exp $
  */
 #include "postgres_fe.h"
 #include "command.h"
@@ -753,11 +753,7 @@ exec_command(const char *cmd,
 
        expand_tilde(&fname);
        /* This scrolls off the screen when using /dev/tty */
-#ifndef WIN32
-       success = saveHistory(fname ? fname : "/dev/tty");
-#else
-       success = saveHistory(fname ? fname : stderr);
-#endif
+       success = saveHistory(fname ? fname : DEVTTY);
        if (success && !quiet && fname)
            printf(gettext("Wrote history to file \"%s/%s\".\n"),
                   pset.dirname ? pset.dirname : ".", fname);
index d89c872a0d284b0d50c8c7a44fe88faa965fb084..123f6796122fab67d2077b9d77d5d9d4716921b2 100644 (file)
@@ -6,7 +6,7 @@
  * Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/port.h,v 1.87 2005/12/06 18:35:10 momjian Exp $
+ * $PostgreSQL: pgsql/src/include/port.h,v 1.88 2006/03/04 04:30:40 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -84,8 +84,11 @@ extern int find_other_exec(const char *argv0, const char *target,
 
 #if defined(WIN32) && !defined(__CYGWIN__)
 #define DEVNULL "nul"
+/* "con" does not work from the MinGW 1.0.10 console. */
+#define DEVTTY "con"
 #else
 #define DEVNULL "/dev/null"
+#define DEVTTY "/dev/tty"
 #endif
 
 /*
index 46d3c627c86819ed9d05eb7a782bf1c0403eb1a0..c176360c7ed5d081084d8bdacc795382016ea9a7 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/port/sprompt.c,v 1.13 2006/03/03 23:49:12 momjian Exp $
+ *   $PostgreSQL: pgsql/src/port/sprompt.c,v 1.14 2006/03/04 04:30:41 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -40,8 +40,8 @@ simple_prompt(const char *prompt, int maxlen, bool echo)
 {
    int         length;
    char       *destination;
-   FILE       *termin = NULL,
-              *termout = NULL;
+   FILE       *termin,
+              *termout;
 
 #ifdef HAVE_TERMIOS_H
    struct termios t_orig,
@@ -63,14 +63,8 @@ simple_prompt(const char *prompt, int maxlen, bool echo)
     * Do not try to collapse these into one "w+" mode file. Doesn't work on
     * some platforms (eg, HPUX 10.20).
     */
-#ifndef WIN32
-   /*
-    *  Some win32 platforms actually have a /dev/tty file, but it isn't
-    *  a device file, and it doesn't work as expected, so we avoid trying.
-    */
-   termin = fopen("/dev/tty", "r");
-   termout = fopen("/dev/tty", "w");
-#endif
+   termin = fopen(DEVTTY, "r");
+   termout = fopen(DEVTTY, "w");
    if (!termin || !termout)
    {
        if (termin)