From a4a6ee4a5dd39d6fad10818bbb9ba9edfb04c04e Mon Sep 17 00:00:00 2001
From: Bruce Momjian <bruce@momjian.us>
Date: Sun, 5 Mar 2006 05:33:12 +0000
Subject: [PATCH] Check for "msys" so it doesn't use 'con' by checking for an
 evironment variable.

---
 src/include/port.h | 4 ++--
 src/port/sprompt.c | 9 +++++++--
 2 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/src/include/port.h b/src/include/port.h
index 123f6796122..54c8ccb4978 100644
--- a/src/include/port.h
+++ b/src/include/port.h
@@ -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.88 2006/03/04 04:30:40 momjian Exp $
+ * $PostgreSQL: pgsql/src/include/port.h,v 1.89 2006/03/05 05:33:12 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -84,7 +84,7 @@ 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. */
+/* "con" does not work from the Msys 1.0.10 console (part of MinGW). */
 #define DEVTTY	"con"
 #else
 #define DEVNULL "/dev/null"
diff --git a/src/port/sprompt.c b/src/port/sprompt.c
index c176360c7ed..812c34d9e5f 100644
--- a/src/port/sprompt.c
+++ b/src/port/sprompt.c
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *	  $PostgreSQL: pgsql/src/port/sprompt.c,v 1.14 2006/03/04 04:30:41 momjian Exp $
+ *	  $PostgreSQL: pgsql/src/port/sprompt.c,v 1.15 2006/03/05 05:33:12 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -65,7 +65,12 @@ simple_prompt(const char *prompt, int maxlen, bool echo)
 	 */
 	termin = fopen(DEVTTY, "r");
 	termout = fopen(DEVTTY, "w");
-	if (!termin || !termout)
+	if (!termin || !termout
+#ifdef WIN32
+		/* See DEVTTY comment for msys */
+		|| (getenv("OSTYPE") && strcmp(getenv("OSTYPE"), "msys") == 0)
+#endif
+		)
 	{
 		if (termin)
 			fclose(termin);
-- 
GitLab