]> granicus.if.org Git - nethack/commitdiff
win32tty: prevent early messages from flashing by unseen
authornethack.allison <nethack.allison>
Sat, 15 Jan 2005 14:04:03 +0000 (14:04 +0000)
committernethack.allison <nethack.allison>
Sat, 15 Jan 2005 14:04:03 +0000 (14:04 +0000)
include/ntconf.h
sys/share/pcmain.c
sys/winnt/nttty.c

index 21eff4f6e0012ff0dac42511a270a970d9baf7aa..17c17fb1ec6a13640bb9982c58d7856f21b744e6 100644 (file)
@@ -151,6 +151,7 @@ extern void FDECL(nttty_preference_update, (const char *));
 extern void NDECL(toggle_mouse_support);
 extern void FDECL(map_subkeyvalue, (char *));
 extern void NDECL(load_keyboard_handler);
+extern void NDECL(raw_clear_screen);
 #endif
 
 #include <fcntl.h>
index 18f24bd6a95e225de0cfe684b98fe7c46c895fdc..eca498128b78d13d698975d5295a6d451ca55318 100644 (file)
@@ -105,6 +105,7 @@ char *argv[];
        register char *dir;
 #if defined(WIN32)
        char fnamebuf[BUFSZ], encodedfnamebuf[BUFSZ];
+       boolean save_getreturn_status;
 #endif
 #ifdef NOCWD_ASSUMPTIONS
        char failbuf[BUFSZ];
@@ -172,6 +173,11 @@ char *argv[];
                chdirx(HACKDIR, 1);
 # endif
        ami_wininit_data();
+#endif
+#ifdef WIN32CON
+       save_getreturn_status = getreturn_enabled;
+       raw_clear_screen();
+       getreturn_enabled = TRUE;
 #endif
        initoptions();
 
@@ -243,6 +249,9 @@ char *argv[];
            }
        }
 
+#ifdef WIN32
+       getreturn_enabled = save_getreturn_status;
+#endif
        /*
         * It seems you really want to play.
         */
index 5541bb8444c64e34a6b8000a83b52d6af4f96de5..e71622dbdb443ec77273a62db1d0b0b2b7b328cb 100644 (file)
@@ -498,7 +498,7 @@ cl_end()
 
 
 void
-clear_screen()
+raw_clear_screen()
 {
        if (GetConsoleScreenBufferInfo(hConOut,&csbi)) {
            DWORD ccnt;
@@ -514,6 +514,12 @@ clear_screen()
                        csbi.dwSize.X * csbi.dwSize.Y,
                        newcoord, &ccnt);
        }
+}
+
+void
+clear_screen()
+{
+       raw_clear_screen();
        home();
 }