Use DEVTTY as 'con' on Win32 as a replacement for /dev/tty.
authorBruce Momjian <[email protected]>
Sat, 4 Mar 2006 04:31:05 +0000 (04:31 +0000)
committerBruce Momjian <[email protected]>
Sat, 4 Mar 2006 04:31:05 +0000 (04:31 +0000)
src/bin/psql/command.c
src/include/port.h
src/port/sprompt.c

index 16f4107cdead693e7f2f7cfab8805a089d1d52de..fedb0feb1f167edc3e4f79cf4537ce027b970a68 100644 (file)
@@ -654,12 +654,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\".\n"), fname);
                if (!fname)
index c1db902647f46c61b97e964549bece9c0e38fee0..90441392dc7ff393c6bc496f867b3d1d9a4b6a80 100644 (file)
@@ -20,7 +20,8 @@
 #include <ctype.h>
 
 /* non-blocking */
-extern bool set_noblock(int sock);
+extern bool pg_set_noblock(int sock);
+extern bool pg_set_block(int sock);
 
 /* Portable path handling for Unix/Win32 */
 
@@ -79,8 +80,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
 
 /*
@@ -174,7 +178,8 @@ extern bool rmtree(char *path, bool rmtopdir);
 
 #if defined(WIN32) && !defined(__CYGWIN__)
 
-/* open() replacement to allow delete of held files */
+/* open() replacement to allow delete of held files and passing
+ * of special options. */
 #ifndef WIN32_CLIENT_ONLY
 extern int     win32_open(const char *, int,...);
 
index 3a9ed9fd104d97e54d809923edd9382911f907f6..da47582764dddffa8ae1067a5bb1cf9a794a7464 100644 (file)
@@ -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,
@@ -64,14 +64,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)