diff --git a/src/conio/ciolib.c b/src/conio/ciolib.c index e9554f80dbbb0419626ceaecb3a9d611e123b9e2..19f6c6cb42a651e008aefba2034b13e6ebd1204f 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 13a590e2860a240ab26f84918e30ecf7b62c40be..dafeefcb88fd9d88f07b3a9f00530d38dff72d8d 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]); } }