add a macro to ease conditional testing based on active window port

Add WINDOWPORT macro

example:
if (WINDOWPORT("tty"))
	pline("Look at me, I'm on tty at the moment!");
This commit is contained in:
nhmall
2018-12-02 09:56:44 -05:00
parent 38b31dd9ca
commit 4a4b3fb8f1
10 changed files with 35 additions and 27 deletions

View 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

View 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

View File

@@ -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)

View 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);

View 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();

View 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();

View 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 {

View 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;

View 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

View 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';
}