Fix for /dev/tty on Win32 - Mailing list pgsql-patches
From | Bruce Momjian |
---|---|
Subject | Fix for /dev/tty on Win32 |
Date | |
Msg-id | 200603040437.k244bu224602@candle.pha.pa.us Whole thread Raw |
Responses |
Re: Fix for /dev/tty on Win32
|
List | pgsql-patches |
I found a better solution to the /dev/tty on Win32. I used 'con' which works fine on Win32 except using the Msys 1.0.10 console, but it is probably the best solution. Can someone test if newer Msys consoles work with this? Added DEVTTY macro for simplicity. Applied to 8.0.X, 8.1.X, and HEAD. -- Bruce Momjian http://candle.pha.pa.us SRA OSS, Inc. http://www.sraoss.com + If your life is a hard drive, Christ can be your backup. + Index: src/bin/psql/command.c =================================================================== RCS file: /cvsroot/pgsql/src/bin/psql/command.c,v retrieving revision 1.162 diff -c -c -r1.162 command.c *** src/bin/psql/command.c 3 Mar 2006 23:49:12 -0000 1.162 --- src/bin/psql/command.c 4 Mar 2006 04:29:53 -0000 *************** *** 753,763 **** 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 if (success && !quiet && fname) printf(gettext("Wrote history to file \"%s/%s\".\n"), pset.dirname ? pset.dirname : ".", fname); --- 753,759 ---- expand_tilde(&fname); /* This scrolls off the screen when using /dev/tty */ ! success = saveHistory(fname ? fname : DEVTTY); if (success && !quiet && fname) printf(gettext("Wrote history to file \"%s/%s\".\n"), pset.dirname ? pset.dirname : ".", fname); Index: src/include/port.h =================================================================== RCS file: /cvsroot/pgsql/src/include/port.h,v retrieving revision 1.87 diff -c -c -r1.87 port.h *** src/include/port.h 6 Dec 2005 18:35:10 -0000 1.87 --- src/include/port.h 4 Mar 2006 04:29:54 -0000 *************** *** 84,91 **** --- 84,94 ---- #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: src/port/sprompt.c =================================================================== RCS file: /cvsroot/pgsql/src/port/sprompt.c,v retrieving revision 1.13 diff -c -c -r1.13 sprompt.c *** src/port/sprompt.c 3 Mar 2006 23:49:12 -0000 1.13 --- src/port/sprompt.c 4 Mar 2006 04:29:54 -0000 *************** *** 40,47 **** { int length; char *destination; ! FILE *termin = NULL, ! *termout = NULL; #ifdef HAVE_TERMIOS_H struct termios t_orig, --- 40,47 ---- { int length; char *destination; ! FILE *termin, ! *termout; #ifdef HAVE_TERMIOS_H struct termios t_orig, *************** *** 63,76 **** * 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 if (!termin || !termout) { if (termin) --- 63,70 ---- * Do not try to collapse these into one "w+" mode file. Doesn't work on * some platforms (eg, HPUX 10.20). */ ! termin = fopen(DEVTTY, "r"); ! termout = fopen(DEVTTY, "w"); if (!termin || !termout) { if (termin)
pgsql-patches by date: