]> granicus.if.org Git - nethack/commitdiff
more self-recover prompting cleanup (tty)
authornhmall <nhmall@nethack.org>
Wed, 4 Dec 2019 18:10:12 +0000 (13:10 -0500)
committernhmall <nhmall@nethack.org>
Wed, 4 Dec 2019 18:10:12 +0000 (13:10 -0500)
include/winprocs.h
sys/winnt/windmain.c
win/share/safeproc.c

index f689527656b86aa67994aa7f4481e728405f0146..55b2b061135b9e27bc056c238a10fd2519e4963d 100644 (file)
@@ -451,6 +451,7 @@ extern void FDECL(safe_status_enablefield,
 extern void FDECL(safe_status_update, (int, genericptr_t, int, int, int, unsigned long *));
 extern boolean NDECL(safe_can_suspend);
 extern void FDECL(stdio_raw_print, (const char *));
+extern void FDECL(stdio_nonl_raw_print, (const char *));
 extern void FDECL(stdio_raw_print_bold, (const char *));
 extern void NDECL(stdio_wait_synch);
 extern int NDECL(stdio_nhgetch);
index 332d363ddda88ebba5cd788d94dbec1873cdb5bd..317d4657e6a8291888dcca8661fb94d5bb5274dd 100644 (file)
@@ -1199,7 +1199,9 @@ tty_self_recover_prompt()
     c = 'n';
     ct = 0;
     saved_procs = windowprocs;
-    safe_routines();
+    if (!WINDOWPORT("safe-startup"))
+        windowprocs = *get_safe_procs(2); /* arg 2 uses no-newline variant */
+    windowprocs.win_nhgetch = windows_console_custom_nhgetch;
     raw_print("\n");
     raw_print("\n");
     raw_print("\n");
index 28896c9c26ac3eff8c509fa07efed5db855e23e5..927744c4efcf0e4919dc83a05e54c09b63849459 100644 (file)
@@ -114,6 +114,8 @@ int optn;
         safe_procs.win_raw_print_bold = stdio_raw_print_bold;
         safe_procs.win_nhgetch = stdio_nhgetch;
         safe_procs.win_wait_synch = stdio_wait_synch;
+        if (optn == 2)
+            safe_procs.win_raw_print = stdio_nonl_raw_print;        
     }
     return &safe_procs;
 }
@@ -536,6 +538,17 @@ stdio_wait_synch()
 void
 stdio_raw_print(str)
 const char *str;
+{
+    if (str)
+        fprintf(stdout, "%s\n", str);
+    return;
+}
+
+/* no newline variation, add to your code:
+    windowprocs.win_raw_print = stdio_nonl_raw_print;  */
+void
+stdio_nonl_raw_print(str)
+const char *str;
 {
     if (str)
         fprintf(stdout, "%s", str);