From: Bruce Momjian Date: Sat, 4 Mar 2006 04:31:05 +0000 (+0000) Subject: Use DEVTTY as 'con' on Win32 as a replacement for /dev/tty. X-Git-Url: http://git.postgresql.org/gitweb/static/gitweb.js?a=commitdiff_plain;h=fc8fe322f2846e6a4667cec84539f3738e6989c7;p=users%2Fbernd%2Fpostgres.git Use DEVTTY as 'con' on Win32 as a replacement for /dev/tty. --- diff --git a/src/bin/psql/command.c b/src/bin/psql/command.c index 16f4107cde..fedb0feb1f 100644 --- a/src/bin/psql/command.c +++ b/src/bin/psql/command.c @@ -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) diff --git a/src/include/port.h b/src/include/port.h index c1db902647..90441392dc 100644 --- a/src/include/port.h +++ b/src/include/port.h @@ -20,7 +20,8 @@ #include /* 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,...); diff --git a/src/port/sprompt.c b/src/port/sprompt.c index 3a9ed9fd10..da47582764 100644 --- a/src/port/sprompt.c +++ b/src/port/sprompt.c @@ -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)