Bruce Momjian wrote:
> 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.

I am attaching a new applied patch that reverts "msys" so it doesn't use
'con'.  This means we now actually prompt from the terminal on Win32
(except for msys consoles).

-- 
  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/include/port.h
===================================================================
RCS file: /cvsroot/pgsql/src/include/port.h,v
retrieving revision 1.88
diff -c -c -r1.88 port.h
*** src/include/port.h  4 Mar 2006 04:30:40 -0000       1.88
--- src/include/port.h  5 Mar 2006 05:29:09 -0000
***************
*** 84,90 ****
  
  #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"
--- 84,90 ----
  
  #if defined(WIN32) && !defined(__CYGWIN__)
  #define DEVNULL "nul"
! /* "con" does not work from the Msys 1.0.10 console (part of MinGW). */
  #define DEVTTY        "con"
  #else
  #define DEVNULL "/dev/null"
Index: src/port/sprompt.c
===================================================================
RCS file: /cvsroot/pgsql/src/port/sprompt.c,v
retrieving revision 1.14
diff -c -c -r1.14 sprompt.c
*** src/port/sprompt.c  4 Mar 2006 04:30:41 -0000       1.14
--- src/port/sprompt.c  5 Mar 2006 05:29:10 -0000
***************
*** 65,71 ****
         */
        termin = fopen(DEVTTY, "r");
        termout = fopen(DEVTTY, "w");
!       if (!termin || !termout)
        {
                if (termin)
                        fclose(termin);
--- 65,76 ----
         */
        termin = fopen(DEVTTY, "r");
        termout = fopen(DEVTTY, "w");
!       if (!termin || !termout
! #ifdef WIN32
!               /* See DEVTTY comment for msys */
!               || (getenv("OSTYPE") && strcmp(getenv("OSTYPE"), "msys") == 0)
! #endif
!               )
        {
                if (termin)
                        fclose(termin);
---------------------------(end of broadcast)---------------------------
TIP 2: Don't 'kill -9' the postmaster

Reply via email to