]> granicus.if.org Git - nethack/commitdiff
add a macro to ease conditional testing based on active window port
authornhmall <nhmall@nethack.org>
Sun, 2 Dec 2018 14:56:44 +0000 (09:56 -0500)
committernhmall <nhmall@nethack.org>
Sun, 2 Dec 2018 14:56:44 +0000 (09:56 -0500)
Add WINDOWPORT macro

example:
if (WINDOWPORT("tty"))
pline("Look at me, I'm on tty at the moment!");

include/winprocs.h
src/bones.c
src/cmd.c
src/files.c
src/restore.c
src/save.c
sys/share/pcmain.c
sys/share/pcunix.c
sys/share/unixtty.c
sys/winnt/winnt.c

index 326f44eb2f61b9c8a4077a9d7ddef65a2e298f91..316af51711d392888a70a75ed2bfcaa928d83faa 100644 (file)
@@ -260,6 +260,11 @@ struct wc_Opt {
     unsigned long wc_bit;
 };
 
+/* Macro for the currently active Window Port whose function
+   pointers have been loaded */
+#define WINDOWPORT(wn) \
+    (windowprocs.name && !strncmpi((wn), windowprocs.name, strlen((wn))))
+
 /* role selection by player_selection(); this ought to be in the core... */
 #define RS_NAME    0
 #define RS_ROLE    1
index 77fc271246f999c0313dd4218229a3fa2d4c584e..7aadc39671cc310c330b0707b10055ad5c125acb 100644 (file)
@@ -190,7 +190,7 @@ sanitize_name(namebuf)
 char *namebuf;
 {
     int c;
-    boolean strip_8th_bit = (!strcmp(windowprocs.name, "tty")
+    boolean strip_8th_bit = (WINDOWPORT("tty")
                              && !iflags.wc_eight_bit_input);
 
     /* it's tempting to skip this for single-user platforms, since
index e5ac4993f57fd4b1b21337d817c1856ae882e8cc..20327366c10230bd0c9f102b46e4a104dceed5ca 100644 (file)
--- a/src/cmd.c
+++ b/src/cmd.c
@@ -1049,7 +1049,7 @@ wiz_show_wmodes(VOID_ARGS)
     int x, y;
     char row[COLNO + 1];
     struct rm *lev;
-    boolean istty = !strcmp(windowprocs.name, "tty");
+    boolean istty = WINDOWPORT("tty");
 
     win = create_nhwindow(NHW_TEXT);
     if (istty)
index bec88904fbd313be84d100e47081a4819ded2705..3dd13774359bee91aa48db327e6245460b54d821 100644 (file)
@@ -1279,7 +1279,7 @@ boolean uncomp;
     int i = 0;
     int f;
 #ifdef TTY_GRAPHICS
-    boolean istty = !strncmpi(windowprocs.name, "tty", 3);
+    boolean istty = WINDOWPORT("tty");
 #endif
 
     Strcpy(cfn, filename);
index f26379967f1383e686a0b90b5d25f97bc892a9fa..25604f10d1834bc9d93934d183982336a8dafd94 100644 (file)
@@ -828,7 +828,7 @@ register int fd;
 #ifdef AMII_GRAPHICS
     {
         extern struct window_procs amii_procs;
-        if (windowprocs.win_init_nhwindows == amii_procs.win_init_nhwindows) {
+        if (WINDOWPORT("amii") {
             extern winid WIN_BASE;
             clear_nhwindow(WIN_BASE); /* hack until there's a hook for this */
         }
@@ -844,7 +844,7 @@ register int fd;
     curs(WIN_MAP, 1, 1);
     dotcnt = 0;
     dotrow = 2;
-    if (strncmpi("X11", windowprocs.name, 3))
+    if (!WINDOWPORT("X11"))
         putstr(WIN_MAP, 0, "Restoring:");
 #endif
     restoreprocs.mread_flags = 1; /* return despite error */
@@ -859,7 +859,7 @@ register int fd;
             dotrow++;
             dotcnt = 0;
         }
-        if (strncmpi("X11", windowprocs.name, 3)) {
+        if (!WINDOWPORT("X11")) {
             putstr(WIN_MAP, 0, ".");
         }
         mark_synch();
index bca03c49ec86d0ca9cb7c52ad29bb1312ddbb340..095890f05f1a5429ca68ebf40eedd62bdd7f4823 100644 (file)
@@ -178,7 +178,7 @@ dosave0()
     dotcnt = 0;
     dotrow = 2;
     curs(WIN_MAP, 1, 1);
-    if (strncmpi("X11", windowprocs.name, 3))
+    if (!WINDOWPORT("X11"))
         putstr(WIN_MAP, 0, "Saving:");
 #endif
 #ifdef MFLOPPY
@@ -242,7 +242,7 @@ dosave0()
             dotrow++;
             dotcnt = 0;
         }
-        if (strncmpi("X11", windowprocs.name, 3)) {
+        if (!WINDOWPORT("X11")) {
             putstr(WIN_MAP, 0, ".");
         }
         mark_synch();
index 20b73f728aa958b4b34a2d6a8207678856020a6c..8651ae8fea091c8decb8e42cec59706bbd72999f 100644 (file)
@@ -499,12 +499,12 @@ _CrtSetReportFile(_CRT_ASSERT, _CRTDBG_FILE_STDERR);*/
 
 #ifdef WIN32
     /*
-        if (!strncmpi(windowprocs.name, "mswin", 5))
+        if (WINDOWPORT("mswin"))
             NHWinMainInit();
         else
     */
 #ifdef TTY_GRAPHICS
-    if (!strncmpi(windowprocs.name, "tty", 3)) {
+    if (WINDOWPORT("tty")) {
         iflags.use_background_glyph = FALSE;
         nttty_open(1);
     } else {
index 22bc4ae4e2d1ab35eb3ee2c637795e7f89ded6a5..bb746ca92d99e606f6f3dce1725a9a11928c097c 100644 (file)
@@ -198,7 +198,7 @@ getlock()
 #ifndef SELF_RECOVER
         if (eraseoldlocks()) {
 #if defined(WIN32) && defined(TTY_GRAPHICS)
-            if (!strncmpi(windowprocs.name, "tty", 3))
+            if (WINDOWPORT("tty"))
                 clear_screen(); /* display gets fouled up otherwise */
 #endif
             goto gotlock;
@@ -212,7 +212,7 @@ getlock()
 #else /*SELF_RECOVER*/
         if (recover_savefile()) {
 #if defined(WIN32) && defined(TTY_GRAPHICS)
-            if (!strncmpi(windowprocs.name, "tty", 3))
+            if (WINDOWPORT("tty"))
                 clear_screen(); /* display gets fouled up otherwise */
 #endif
             goto gotlock;
index 00d473204278dfff5fa1d7e7382c501a05a124b0..39a859e7998adcf27b9094473c60b1bd7ae07417 100644 (file)
@@ -305,7 +305,7 @@ void intron() /* enable kbd interupts if enabled when game started */
 {
 #ifdef TTY_GRAPHICS
     /* Ugly hack to keep from changing tty modes for non-tty games -dlc */
-    if (!strcmp(windowprocs.name, "tty") && intr_char != nonesuch
+    if (WINDOWPORT("tty") && intr_char != nonesuch
         && curttyb2.intr_sym != '\003') {
         curttyb2.intr_sym = '\003';
         setctty();
@@ -317,7 +317,7 @@ void introff() /* disable kbd interrupts if required*/
 {
 #ifdef TTY_GRAPHICS
     /* Ugly hack to keep from changing tty modes for non-tty games -dlc */
-    if (!strcmp(windowprocs.name, "tty") && curttyb2.intr_sym != nonesuch) {
+    if (WINDOWPORT("tty") && curttyb2.intr_sym != nonesuch) {
         curttyb2.intr_sym = nonesuch;
         setctty();
     }
@@ -345,7 +345,7 @@ void
 sco_mapon()
 {
 #ifdef TTY_GRAPHICS
-    if (!strcmp(windowprocs.name, "tty") && sco_flag_console) {
+    if (WINDOWPORT("tty") && sco_flag_console) {
         if (sco_map_valid != -1) {
             ioctl(0, LDSMAP, sco_chanmap_buf);
         }
@@ -358,7 +358,7 @@ void
 sco_mapoff()
 {
 #ifdef TTY_GRAPHICS
-    if (!strcmp(windowprocs.name, "tty") && sco_flag_console) {
+    if (WINDOWPORT("tty") && sco_flag_console) {
         sco_map_valid = ioctl(0, LDGMAP, sco_chanmap_buf);
         if (sco_map_valid != -1) {
             ioctl(0, LDNMAP, (char *) 0);
@@ -379,7 +379,7 @@ void
 init_sco_cons()
 {
 #ifdef TTY_GRAPHICS
-    if (!strcmp(windowprocs.name, "tty") && sco_flag_console) {
+    if (WINDOWPORT("tty") && sco_flag_console) {
         atexit(sco_mapon);
         sco_mapoff();
         load_symset("IBMGraphics", PRIMARY);
@@ -409,7 +409,7 @@ void
 linux_mapon()
 {
 #ifdef TTY_GRAPHICS
-    if (!strcmp(windowprocs.name, "tty") && linux_flag_console) {
+    if (WINDOWPORT("tty") && linux_flag_console) {
         write(1, "\033(B", 3);
     }
 #endif
@@ -419,7 +419,7 @@ void
 linux_mapoff()
 {
 #ifdef TTY_GRAPHICS
-    if (!strcmp(windowprocs.name, "tty") && linux_flag_console) {
+    if (WINDOWPORT("tty") && linux_flag_console) {
         write(1, "\033(U", 3);
     }
 #endif
@@ -439,7 +439,7 @@ void
 init_linux_cons()
 {
 #ifdef TTY_GRAPHICS
-    if (!strcmp(windowprocs.name, "tty") && linux_flag_console) {
+    if (WINDOWPORT("tty") && linux_flag_console) {
         atexit(linux_mapon);
         linux_mapoff();
 #ifdef TEXTCOLOR
index 5b0fd8bc8b5e18137e856bd9ca627cdbf61559eb..0be1da094b31b3d4af37d5a77507f88dd286be7e 100644 (file)
@@ -216,7 +216,7 @@ VA_DECL(const char *, s)
     /* error() may get called before tty is initialized */
     if (iflags.window_inited)
         end_screen();
-    if (windowprocs.name != NULL && !strncmpi(windowprocs.name, "tty", 3)) {
+    if (WINDOWPORT("tty")) {
         buf[0] = '\n';
         (void) vsprintf(&buf[1], s, VA_ARGS);
         Strcat(buf, "\n");
@@ -239,6 +239,11 @@ Delay(int ms)
 void
 win32_abort()
 {
+    boolean is_tty = FALSE;
+
+#ifdef TTY_GRAPHICS
+    is_tty = WINDOWPORT("tty");
+#endif
     if (wizard) {
         int c, ci, ct;
 
@@ -248,13 +253,11 @@ win32_abort()
         msmsg("Execute debug breakpoint wizard?");
         while ((ci = nhgetch()) != '\n') {
             if (ct > 0) {
-#ifdef TTY_GRAPHICS
-                backsp(); /* \b is visible on NT */
-#endif
+                if (is_tty)
+                    backsp(); /* \b is visible on NT console */
                 (void) putchar(' ');
-#ifdef TTY_GRAPHICS
-                backsp();
-#endif
+                if (is_tty)
+                    backsp();
                 ct = 0;
                 c = 'n';
             }