diff --git a/src/files.c b/src/files.c index 4e442e094..8c69e9399 100644 --- a/src/files.c +++ b/src/files.c @@ -1,4 +1,4 @@ -/* NetHack 3.7 files.c $NHDT-Date: 1711213887 2024/03/23 17:11:27 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.397 $ */ +/* NetHack 3.7 files.c $NHDT-Date: 1717449127 2024/06/03 21:12:07 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.399 $ */ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /*-Copyright (c) Derek S. Ray, 2015. */ /* NetHack may be freely redistributed. See license for details. */ @@ -2796,10 +2796,9 @@ cnf_line_EXPLORERS(char *bufp) staticfn boolean cnf_line_DEBUGFILES(char *bufp) { - /* if showdebug() has already been called (perhaps we've added - some debugpline() calls to option processing) and has found - a value for getenv("DEBUGFILES"), don't override that */ - if (sysopt.env_dbgfl <= 0) { + /* might already have a vaule from getenv("DEBUGFILES"); + if so, ignore this value from SYSCF */ + if (!sysopt.env_dbgfl) { if (sysopt.debugfiles) free((genericptr_t) sysopt.debugfiles); sysopt.debugfiles = dupstr(bufp); @@ -4523,20 +4522,6 @@ debugcore(const char *filename, boolean wildcards) if (!filename || !*filename) return FALSE; /* sanity precaution */ - if (sysopt.env_dbgfl == 0) { - /* check once for DEBUGFILES in the environment; - if found, it supersedes the sysconf value - [note: getenv() rather than nh_getenv() since a long value - is valid and doesn't pose any sort of overflow risk here] */ - if ((p = getenv("DEBUGFILES")) != 0) { - if (sysopt.debugfiles) - free((genericptr_t) sysopt.debugfiles); - sysopt.debugfiles = dupstr(p); - sysopt.env_dbgfl = 1; - } else - sysopt.env_dbgfl = -1; - } - debugfiles = sysopt.debugfiles; /* usual case: sysopt.debugfiles will be empty */ if (!debugfiles || !*debugfiles) diff --git a/src/sys.c b/src/sys.c index 7f463c50d..ad2274fbe 100644 --- a/src/sys.c +++ b/src/sys.c @@ -1,4 +1,4 @@ -/* NetHack 3.7 sys.c $NHDT-Date: 1693083254 2023/08/26 20:54:14 $ $NHDT-Branch: keni-crashweb2 $:$NHDT-Revision: 1.63 $ */ +/* NetHack 3.7 sys.c $NHDT-Date: 1717449153 2024/06/03 21:12:33 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.64 $ */ /* Copyright (c) Kenneth Lorber, Kensington, Maryland, 2008. */ /* NetHack may be freely redistributed. See license for details. */ @@ -20,6 +20,8 @@ struct sysopt sysopt; void sys_early_init(void) { + const char *p; + sysopt.support = (char *) 0; sysopt.recover = (char *) 0; #ifdef SYSCF @@ -27,15 +29,22 @@ sys_early_init(void) #else sysopt.wizards = dupstr(WIZARD_NAME); #endif + + if ((p = getenv("DEBUGFILES")) != 0) { + sysopt.debugfiles = dupstr(p); + sysopt.env_dbgfl = 1; /* prevent sysconf processing from overriding */ + } else { #if defined(SYSCF) || !defined(DEBUGFILES) - sysopt.debugfiles = (char *) 0; + sysopt.debugfiles = (char *) 0; #else - sysopt.debugfiles = dupstr(DEBUGFILES); + sysopt.debugfiles = dupstr(DEBUGFILES); #endif + sysopt.env_dbgfl = 0; + } + #ifdef DUMPLOG sysopt.dumplogfile = (char *) 0; #endif - sysopt.env_dbgfl = 0; /* haven't checked getenv("DEBUGFILES") yet */ sysopt.shellers = (char *) 0; sysopt.explorers = (char *) 0; sysopt.genericusers = (char *) 0; @@ -105,6 +114,7 @@ sysopt_release(void) if (sysopt.debugfiles) free((genericptr_t) sysopt.debugfiles), sysopt.debugfiles = (char *) 0; + sysopt.env_dbgfl = 0; #ifdef DUMPLOG if (sysopt.dumplogfile) free((genericptr_t) sysopt.dumplogfile), sysopt.dumplogfile=(char *) 0;