From 1ceddeb2d99bfa33ab05fe7d19f900975e3df40d Mon Sep 17 00:00:00 2001
From: deuce <>
Date: Fri, 17 Sep 2004 23:00:03 +0000
Subject: [PATCH] Do not initialize console mode to BW40!

---
 src/conio/ciolib.c   |  2 +-
 src/conio/win32cio.c | 12 ++++++++++--
 2 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/src/conio/ciolib.c b/src/conio/ciolib.c
index e9554f80db..19f6c6cb42 100644
--- a/src/conio/ciolib.c
+++ b/src/conio/ciolib.c
@@ -158,7 +158,7 @@ int try_ansi_init(int mode)
 int try_conio_init(int mode)
 {
 	/* This should test for something or other */
-	if(win32_initciolib(mode)) {
+	if(win32_initciolib(C80)) {
 		cio_api.mode=CIOLIB_MODE_CONIO;
 		cio_api.mouse=1;
 		cio_api.puttext=win32_puttext;
diff --git a/src/conio/win32cio.c b/src/conio/win32cio.c
index 13a590e286..dafeefcb88 100644
--- a/src/conio/win32cio.c
+++ b/src/conio/win32cio.c
@@ -247,13 +247,21 @@ int win32_initciolib(long inmode)
 
 	if(!isatty(fileno(stdin)))
 		return(0);
-	win32_textmode(inmode);
 	if(!GetConsoleMode(GetStdHandle(STD_INPUT_HANDLE), &conmode))
 		return(0);
 	conmode&=~ENABLE_PROCESSED_INPUT;
 	conmode|=ENABLE_MOUSE_INPUT;
 	if(!SetConsoleMode(GetStdHandle(STD_INPUT_HANDLE), conmode))
 		return(0);
+
+	if(!GetConsoleMode(GetStdHandle(STD_OUTPUT_HANDLE), &conmode))
+		return(0);
+	conmode&=~ENABLE_PROCESSED_OUTPUT;
+	conmode&=~ENABLE_WRAP_AT_EOL_OUTPUT;
+	if(!SetConsoleMode(GetStdHandle(STD_OUTPUT_HANDLE), conmode))
+		return(0);
+
+	win32_textmode(inmode);
 	cio_api.mouse=1;
 	return(1);
 }
@@ -384,7 +392,7 @@ int win32_puttext(int left, int top, int right, int bottom, void* buf)
 	ci=(CHAR_INFO *)malloc(sizeof(CHAR_INFO)*(bs.X*bs.Y));
 	for(y=0;y<bs.Y;y++) {
 		for(x=0;x<bs.X;x++) {
-			ci[(y*bs.X)+x].Char.AsciiChar=bu[((y*bs.X)+x)*2];
+			ci[(y*bs.X)+x].Char.AsciiChar=ch;
 			ci[(y*bs.X)+x].Attributes=DOStoWinAttr(bu[(((y*bs.X)+x)*2)+1]);
 		}
 	}
-- 
GitLab