diff --git a/include/decl.h b/include/decl.h index aa5012734..86abd84f1 100644 --- a/include/decl.h +++ b/include/decl.h @@ -8,9 +8,54 @@ #define E extern -E char SAVEF[]; -#ifdef MICRO -E char SAVEP[]; +#if !defined(MFLOPPY) && !defined(VMS) && !defined(WIN32) +#define LOCKNAMESIZE (PL_NSIZ + 14) /* long enough for uid+name+.99 */ +#define LOCKNAMEINIT "1lock" +#define BONESINIT "bonesnn.xxx" +#define BONESSIZE sizeof(BONESINIT) +#else +#if defined(MFLOPPY) +#define LOCKNAMESIZE FILENAME +#define LOCKNAMEINIT "" +#define BONESINIT "" +#define BONESSIZE FILENAME +#endif +#if defined(VMS) +#define LOCKNAMESIZE (PL_NSIZ + 17) /* long enough for _uid+name+.99;1 */ +#define LOCKNAMEINIT "1lock" +#define BONESINIT "bonesnn.xxx;1" +#define BONESSIZE sizeof(BONESINIT) +#endif +#if defined(WIN32) +#define LOCKNAMESIZE (PL_NSIZ + 25) /* long enough for username+-+name+.99 */ +#define LOCKNAMEINIT "" +#define BONESINIT "bonesnn.xxx" +#define BONESSIZE sizeof(BONESINIT) +#endif +#endif + +#if defined(UNIX) || defined(__BEOS__) +#define SAVESIZE (PL_NSIZ + 13) /* save/99999player.e */ +#else +#ifdef VMS +#define SAVESIZE (PL_NSIZ + 22) /* [.save]player.e;1 */ +#else +#if defined(WIN32) +#define SAVESIZE (PL_NSIZ + 40) /* username-player.NetHack-saved-game */ +#else +#define SAVESIZE FILENAME /* from macconf.h or pcconf.h */ +#endif +#endif +#endif + +/* used in files.c */ +#ifdef HOLD_LOCKFILE_OPEN +struct level_ftrack { + int init; + int fd; /* file descriptor for level file */ + int oflag; /* open flags */ + boolean nethack_thinks_it_is_open; /* Does NetHack think it's open? */ +}; #endif /* max size of a windowtype option */ @@ -137,8 +182,6 @@ struct kinfo { char name[BUFSZ]; /* actual killer name */ }; -E char lock[]; - E const schar xdir[], ydir[], zdir[]; struct multishot { @@ -796,6 +839,16 @@ struct instance_globals { boolean chosen_symset_start; boolean chosen_symset_end; int symset_which_set; +#ifdef HOLD_LOCKFILE_OPEN + struct level_ftrack lftrack; +#endif /*HOLD_LOCKFILE_OPEN*/ + char SAVEF[SAVESIZE]; /* holds relative path of save file from playground */ +#ifdef MICRO + char SAVEP[SAVESIZE]; /* holds path of directory for save file */ +#endif + char bones[BONESSIZE]; + char lock[LOCKNAMESIZE]; + /* hack.c */ anything tmp_anything; diff --git a/src/bones.c b/src/bones.c index 5ba3ffe5a..07fa66990 100644 --- a/src/bones.c +++ b/src/bones.c @@ -6,7 +6,6 @@ #include "hack.h" #include "lev.h" -extern char bones[]; /* from files.c */ #ifdef MFLOPPY extern long bytes_counted; #endif @@ -573,7 +572,7 @@ getbones() if (fd < 0) return 0; - if (validate(fd, bones) != 0) { + if (validate(fd, g.bones) != 0) { if (!wizard) pline("Discarding unuseable bones; no need to panic..."); ok = FALSE; diff --git a/src/decl.c b/src/decl.c index 34bb2ad0c..9ae516bc0 100644 --- a/src/decl.c +++ b/src/decl.c @@ -368,6 +368,16 @@ const struct instance_globals g_init = { FALSE, /* chosen_symset_start */ FALSE, /* chosen_symset_end */ 0, /* symset_which_set */ +#ifdef HOLD_LOCKFILE_OPEN + DUMMY, /* lftrack */ +#endif + DUMMY, /* SAVEF */ +#ifdef MICRO + DUMMY, /* SAVEP */ +#endif + BONESINIT, /* bones */ + LOCKNAMEINIT, /* lock */ + /* hack.c */ UNDEFINED_VALUES, diff --git a/src/files.c b/src/files.c index 14daab94a..da015b61e 100644 --- a/src/files.c +++ b/src/files.c @@ -67,38 +67,6 @@ const static char fqn_filename_buffer[FQN_NUMBUF][FQN_MAX_FILENAME]; #endif -#if !defined(MFLOPPY) && !defined(VMS) && !defined(WIN32) -char bones[] = "bonesnn.xxx"; -char lock[PL_NSIZ + 14] = "1lock"; /* long enough for uid+name+.99 */ -#else -#if defined(MFLOPPY) -char bones[FILENAME]; /* pathname of bones files */ -char lock[FILENAME]; /* pathname of level files */ -#endif -#if defined(VMS) -char bones[] = "bonesnn.xxx;1"; -char lock[PL_NSIZ + 17] = "1lock"; /* long enough for _uid+name+.99;1 */ -#endif -#if defined(WIN32) -char bones[] = "bonesnn.xxx"; -char lock[PL_NSIZ + 25]; /* long enough for username+-+name+.99 */ -#endif -#endif - -#if defined(UNIX) || defined(__BEOS__) -#define SAVESIZE (PL_NSIZ + 13) /* save/99999player.e */ -#else -#ifdef VMS -#define SAVESIZE (PL_NSIZ + 22) /* [.save]player.e;1 */ -#else -#if defined(WIN32) -#define SAVESIZE (PL_NSIZ + 40) /* username-player.NetHack-saved-game */ -#else -#define SAVESIZE FILENAME /* from macconf.h or pcconf.h */ -#endif -#endif -#endif - #if !defined(SAVE_EXTENSION) #ifdef MICRO #define SAVE_EXTENSION ".sav" @@ -108,18 +76,7 @@ char lock[PL_NSIZ + 25]; /* long enough for username+-+name+.99 */ #endif #endif -char SAVEF[SAVESIZE]; /* holds relative path of save file from playground */ -#ifdef MICRO -char SAVEP[SAVESIZE]; /* holds path of directory for save file */ -#endif - #ifdef HOLD_LOCKFILE_OPEN -struct level_ftrack { - int init; - int fd; /* file descriptor for level file */ - int oflag; /* open flags */ - boolean nethack_thinks_it_is_open; /* Does NetHack think it's open? */ -} lftrack; #if defined(WIN32) #include #endif @@ -435,18 +392,18 @@ set_lock_and_bones() { if (!g.ramdisk) { Strcpy(levels, g.permbones); - Strcpy(bones, g.permbones); + Strcpy(g.bones, g.permbones); } append_slash(g.permbones); append_slash(g.levels); #ifdef AMIGA strncat(levels, bbs_id, PATHLEN); #endif - append_slash(bones); - Strcat(bones, "bonesnn.*"); - Strcpy(lock, g.levels); + append_slash(g.bones); + Strcat(g.bones, "bonesnn.*"); + Strcpy(g.lock, g.levels); #ifndef AMIGA - Strcat(lock, g.alllevels); + Strcat(g.lock, g.alllevels); #endif return; } @@ -485,8 +442,8 @@ char errbuf[]; if (errbuf) *errbuf = '\0'; - set_levelfile_name(lock, lev); - fq_lock = fqname(lock, LEVELPREFIX, 0); + set_levelfile_name(g.lock, lev); + fq_lock = fqname(g.lock, LEVELPREFIX, 0); #if defined(MICRO) || defined(WIN32) /* Use O_TRUNC to force the file to be shortened if it already @@ -511,7 +468,7 @@ char errbuf[]; g.level_info[lev].flags |= LFILE_EXISTS; else if (errbuf) /* failure explanation */ Sprintf(errbuf, "Cannot create file \"%s\" for level %d (errno %d).", - lock, lev, errno); + g.lock, lev, errno); return fd; } @@ -526,8 +483,8 @@ char errbuf[]; if (errbuf) *errbuf = '\0'; - set_levelfile_name(lock, lev); - fq_lock = fqname(lock, LEVELPREFIX, 0); + set_levelfile_name(g.lock, lev); + fq_lock = fqname(g.lock, LEVELPREFIX, 0); #ifdef MFLOPPY /* If not currently accessible, swap it in. */ if (g.level_info[lev].where != ACTIVE) @@ -549,7 +506,7 @@ char errbuf[]; might end up being too big for nethack's BUFSZ */ if (fd < 0 && errbuf) Sprintf(errbuf, "Cannot open file \"%s\" for level %d (errno %d).", - lock, lev, errno); + g.lock, lev, errno); return fd; } @@ -563,12 +520,12 @@ int lev; * call create_levfile(), so always assume that it exists. */ if (lev == 0 || (g.level_info[lev].flags & LFILE_EXISTS)) { - set_levelfile_name(lock, lev); + set_levelfile_name(g.lock, lev); #ifdef HOLD_LOCKFILE_OPEN if (lev == 0) really_close(); #endif - (void) unlink(fqname(lock, LEVELPREFIX, 0)); + (void) unlink(fqname(g.lock, LEVELPREFIX, 0)); g.level_info[lev].flags &= ~LFILE_EXISTS; } } @@ -624,31 +581,31 @@ int lev, oflag; { int reslt, fd; - if (!lftrack.init) { - lftrack.init = 1; - lftrack.fd = -1; + if (!g.lftrack.init) { + g.lftrack.init = 1; + g.lftrack.fd = -1; } - if (lftrack.fd >= 0) { + if (g.lftrack.fd >= 0) { /* check for compatible access */ - if (lftrack.oflag == oflag) { - fd = lftrack.fd; + if (g.lftrack.oflag == oflag) { + fd = g.lftrack.fd; reslt = lseek(fd, 0L, SEEK_SET); if (reslt == -1L) panic("open_levelfile_exclusively: lseek failed %d", errno); - lftrack.nethack_thinks_it_is_open = TRUE; + g.lftrack.nethack_thinks_it_is_open = TRUE; } else { really_close(); fd = sopen(name, oflag, SH_DENYRW, FCMASK); - lftrack.fd = fd; - lftrack.oflag = oflag; - lftrack.nethack_thinks_it_is_open = TRUE; + g.lftrack.fd = fd; + g.lftrack.oflag = oflag; + g.lftrack.nethack_thinks_it_is_open = TRUE; } } else { fd = sopen(name, oflag, SH_DENYRW, FCMASK); - lftrack.fd = fd; - lftrack.oflag = oflag; + g.lftrack.fd = fd; + g.lftrack.oflag = oflag; if (fd >= 0) - lftrack.nethack_thinks_it_is_open = TRUE; + g.lftrack.nethack_thinks_it_is_open = TRUE; } return fd; } @@ -658,12 +615,12 @@ really_close() { int fd; - if (lftrack.init) { - fd = lftrack.fd; + if (g.lftrack.init) { + fd = g.lftrack.fd; - lftrack.nethack_thinks_it_is_open = FALSE; - lftrack.fd = -1; - lftrack.oflag = 0; + g.lftrack.nethack_thinks_it_is_open = FALSE; + g.lftrack.fd = -1; + g.lftrack.oflag = 0; if (fd != -1) (void) close(fd); } @@ -674,10 +631,10 @@ int nhclose(fd) int fd; { - if (lftrack.fd == fd) { + if (g.lftrack.fd == fd) { really_close(); /* close it, but reopen it to hold it */ fd = open_levelfile(0, (char *) 0); - lftrack.nethack_thinks_it_is_open = FALSE; + g.lftrack.nethack_thinks_it_is_open = FALSE; return 0; } return close(fd); @@ -761,14 +718,14 @@ set_bonestemp_name() { char *tf; - tf = rindex(lock, '.'); + tf = rindex(g.lock, '.'); if (!tf) - tf = eos(lock); + tf = eos(g.lock); Sprintf(tf, ".bn"); #ifdef VMS Strcat(tf, ";1"); #endif - return lock; + return g.lock; } int @@ -782,7 +739,7 @@ char errbuf[]; if (errbuf) *errbuf = '\0'; - *bonesid = set_bonesfile_name(bones, lev); + *bonesid = set_bonesfile_name(g.bones, lev); file = set_bonestemp_name(); file = fqname(file, BONESPREFIX, 0); @@ -799,7 +756,7 @@ char errbuf[]; #endif #endif if (fd < 0 && errbuf) /* failure explanation */ - Sprintf(errbuf, "Cannot create bones \"%s\", id %s (errno %d).", lock, + Sprintf(errbuf, "Cannot create bones \"%s\", id %s (errno %d).", g.lock, *bonesid, errno); #if defined(VMS) && !defined(SECURE) @@ -838,8 +795,8 @@ d_level *lev; const char *fq_bones, *tempname; int ret; - (void) set_bonesfile_name(bones, lev); - fq_bones = fqname(bones, BONESPREFIX, 0); + (void) set_bonesfile_name(g.bones, lev); + fq_bones = fqname(g.bones, BONESPREFIX, 0); tempname = set_bonestemp_name(); tempname = fqname(tempname, BONESPREFIX, 1); @@ -865,8 +822,8 @@ char **bonesid; const char *fq_bones; int fd; - *bonesid = set_bonesfile_name(bones, lev); - fq_bones = fqname(bones, BONESPREFIX, 0); + *bonesid = set_bonesfile_name(g.bones, lev); + fq_bones = fqname(g.bones, BONESPREFIX, 0); nh_uncompress(fq_bones); /* no effect if nonexistent */ #ifdef MAC fd = macopen(fq_bones, O_RDONLY | O_BINARY, BONE_TYPE); @@ -880,8 +837,8 @@ int delete_bonesfile(lev) d_level *lev; { - (void) set_bonesfile_name(bones, lev); - return !(unlink(fqname(bones, BONESPREFIX, 0)) < 0); + (void) set_bonesfile_name(g.bones, lev); + return !(unlink(fqname(g.bones, BONESPREFIX, 0)) < 0); } /* assume we're compressing the recently read or created bonesfile, so the @@ -889,7 +846,7 @@ d_level *lev; void compress_bonesfile() { - nh_compress(fqname(bones, BONESPREFIX, 0)); + nh_compress(fqname(g.bones, BONESPREFIX, 0)); } /* ---------- END BONES FILE HANDLING ----------- */ @@ -903,28 +860,28 @@ set_savefile_name(regularize_it) boolean regularize_it; { #ifdef VMS - Sprintf(SAVEF, "[.save]%d%s", getuid(), g.plname); + Sprintf(g.SAVEF, "[.save]%d%s", getuid(), g.plname); if (regularize_it) - regularize(SAVEF + 7); - Strcat(SAVEF, ";1"); + regularize(g.SAVEF + 7); + Strcat(g.SAVEF, ";1"); #else #if defined(MICRO) - Strcpy(SAVEF, SAVEP); + Strcpy(g.SAVEF, g.SAVEP); #ifdef AMIGA - strncat(SAVEF, bbs_id, PATHLEN); + strncat(g.SAVEF, bbs_id, PATHLEN); #endif { - int i = strlen(SAVEP); + int i = strlen(g.SAVEP); #ifdef AMIGA - /* g.plname has to share space with SAVEP and ".sav" */ - (void) strncat(SAVEF, g.plname, FILENAME - i - 4); + /* g.plname has to share space with g.SAVEP and ".sav" */ + (void) strncat(g.SAVEF, g.plname, FILENAME - i - 4); #else - (void) strncat(SAVEF, g.plname, 8); + (void) strncat(g.SAVEF, g.plname, 8); #endif if (regularize_it) - regularize(SAVEF + i); + regularize(g.SAVEF + i); } - Strcat(SAVEF, SAVE_EXTENSION); + Strcat(g.SAVEF, SAVE_EXTENSION); #else #if defined(WIN32) { @@ -939,12 +896,12 @@ boolean regularize_it; if (regularize_it) ++legal; /* skip '*' wildcard character */ (void) fname_encode(legal, '%', fnamebuf, encodedfnamebuf, BUFSZ); - Sprintf(SAVEF, "%s%s", encodedfnamebuf, SAVE_EXTENSION); + Sprintf(g.SAVEF, "%s%s", encodedfnamebuf, SAVE_EXTENSION); } #else /* not VMS or MICRO or WIN32 */ - Sprintf(SAVEF, "save/%d%s", (int) getuid(), g.plname); + Sprintf(g.SAVEF, "save/%d%s", (int) getuid(), g.plname); if (regularize_it) - regularize(SAVEF + 5); /* avoid . or / in name */ + regularize(g.SAVEF + 5); /* avoid . or / in name */ #endif /* WIN32 */ #endif /* MICRO */ #endif /* VMS */ @@ -955,7 +912,7 @@ void save_savefile_name(fd) int fd; { - (void) write(fd, (genericptr_t) SAVEF, sizeof(SAVEF)); + (void) write(fd, (genericptr_t) g.SAVEF, sizeof(g.SAVEF)); } #endif @@ -966,17 +923,17 @@ set_error_savefile() { #ifdef VMS { - char *semi_colon = rindex(SAVEF, ';'); + char *semi_colon = rindex(g.SAVEF, ';'); if (semi_colon) *semi_colon = '\0'; } - Strcat(SAVEF, ".e;1"); + Strcat(g.SAVEF, ".e;1"); #else #ifdef MAC - Strcat(SAVEF, "-e"); + Strcat(g.SAVEF, "-e"); #else - Strcat(SAVEF, ".e"); + Strcat(g.SAVEF, ".e"); #endif #endif } @@ -989,7 +946,7 @@ create_savefile() const char *fq_save; int fd; - fq_save = fqname(SAVEF, SAVEPREFIX, 0); + fq_save = fqname(g.SAVEF, SAVEPREFIX, 0); #if defined(MICRO) || defined(WIN32) fd = open(fq_save, O_WRONLY | O_BINARY | O_CREAT | O_TRUNC, FCMASK); #else @@ -1020,7 +977,7 @@ open_savefile() const char *fq_save; int fd; - fq_save = fqname(SAVEF, SAVEPREFIX, 0); + fq_save = fqname(g.SAVEF, SAVEPREFIX, 0); #ifdef MAC fd = macopen(fq_save, O_RDONLY | O_BINARY, SAVE_TYPE); #else @@ -1033,7 +990,7 @@ open_savefile() int delete_savefile() { - (void) unlink(fqname(SAVEF, SAVEPREFIX, 0)); + (void) unlink(fqname(g.SAVEF, SAVEPREFIX, 0)); return 0; /* for restore_saved_game() (ex-xxxmain.c) test */ } @@ -1050,7 +1007,7 @@ restore_saved_game() if (!saveDiskPrompt(1)) return -1; #endif /* MFLOPPY */ - fq_save = fqname(SAVEF, SAVEPREFIX, 0); + fq_save = fqname(g.SAVEF, SAVEPREFIX, 0); nh_uncompress(fq_save); if ((fd = open_savefile()) < 0) @@ -1071,11 +1028,11 @@ const char *filename; int fd; char *result = 0; - Strcpy(SAVEF, filename); + Strcpy(g.SAVEF, filename); #ifdef COMPRESS_EXTENSION - SAVEF[strlen(SAVEF) - strlen(COMPRESS_EXTENSION)] = '\0'; + g.SAVEF[strlen(g.SAVEF) - strlen(COMPRESS_EXTENSION)] = '\0'; #endif - nh_uncompress(SAVEF); + nh_uncompress(g.SAVEF); if ((fd = open_savefile()) >= 0) { if (validate(fd, filename) == 0) { char tplname[PL_NSIZ]; @@ -1084,7 +1041,7 @@ const char *filename; } (void) nhclose(fd); } - nh_compress(SAVEF); + nh_compress(g.SAVEF); return result; #if 0 @@ -1133,9 +1090,9 @@ get_saved_games() Strcpy(g.plname, "*"); set_savefile_name(FALSE); #if defined(ZLIB_COMP) - Strcat(SAVEF, COMPRESS_EXTENSION); + Strcat(g.SAVEF, COMPRESS_EXTENSION); #endif - fq_save = fqname(SAVEF, SAVEPREFIX, 0); + fq_save = fqname(g.SAVEF, SAVEPREFIX, 0); n = 0; foundfile = foundfile_buffer(); @@ -1202,7 +1159,7 @@ get_saved_games() #ifdef VMS Strcpy(g.plname, "*"); set_savefile_name(FALSE); - j = vms_get_saved_games(SAVEF, &result); + j = vms_get_saved_games(g.SAVEF, &result); #endif /* VMS */ if (j > 0) { @@ -2350,8 +2307,8 @@ char *origbuf; g.saveprompt = sysflags.asksavedisk; #endif - (void) strncpy(SAVEP, bufp, SAVESIZE - 1); - append_slash(SAVEP); + (void) strncpy(g.SAVEP, bufp, SAVESIZE - 1); + append_slash(g.SAVEP); #endif /* MICRO */ #endif /*NOCWD_ASSUMPTIONS*/ @@ -3622,7 +3579,7 @@ recover_savefile() != sizeof(savelev)) { raw_printf( "\nCheckpointing was not in effect for %s -- recovery impossible.\n", - lock); + g.lock); (void) nhclose(gfd); return FALSE; } @@ -3634,7 +3591,7 @@ recover_savefile() || (read(gfd, (genericptr_t) &pltmpsiz, sizeof pltmpsiz) != sizeof pltmpsiz) || (pltmpsiz > PL_NSIZ) || (read(gfd, (genericptr_t) &tmpplbuf, pltmpsiz) != pltmpsiz)) { - raw_printf("\nError reading %s -- can't recover.\n", lock); + raw_printf("\nError reading %s -- can't recover.\n", g.lock); (void) nhclose(gfd); return FALSE; } @@ -3650,7 +3607,7 @@ recover_savefile() set_savefile_name(TRUE); sfd = create_savefile(); if (sfd < 0) { - raw_printf("\nCannot recover savefile %s.\n", SAVEF); + raw_printf("\nCannot recover savefile %s.\n", g.SAVEF); (void) nhclose(gfd); return FALSE; } @@ -3666,7 +3623,7 @@ recover_savefile() if (write(sfd, (genericptr_t) &version_data, sizeof version_data) != sizeof version_data) { - raw_printf("\nError writing %s; recovery failed.", SAVEF); + raw_printf("\nError writing %s; recovery failed.", g.SAVEF); (void) nhclose(gfd); (void) nhclose(sfd); (void) nhclose(lfd); @@ -3676,7 +3633,7 @@ recover_savefile() if (write(sfd, (genericptr_t) &sfi, sizeof sfi) != sizeof sfi) { raw_printf("\nError writing %s; recovery failed (savefile_info).\n", - SAVEF); + g.SAVEF); (void) nhclose(gfd); (void) nhclose(sfd); (void) nhclose(lfd); @@ -3687,7 +3644,7 @@ recover_savefile() if (write(sfd, (genericptr_t) &pltmpsiz, sizeof pltmpsiz) != sizeof pltmpsiz) { raw_printf("Error writing %s; recovery failed (player name size).\n", - SAVEF); + g.SAVEF); (void) nhclose(gfd); (void) nhclose(sfd); (void) nhclose(lfd); @@ -3697,7 +3654,7 @@ recover_savefile() if (write(sfd, (genericptr_t) &tmpplbuf, pltmpsiz) != pltmpsiz) { raw_printf("Error writing %s; recovery failed (player name).\n", - SAVEF); + g.SAVEF); (void) nhclose(gfd); (void) nhclose(sfd); (void) nhclose(lfd); @@ -3758,8 +3715,8 @@ recover_savefile() if (processed[lev]) { const char *fq_lock; - set_levelfile_name(lock, lev); - fq_lock = fqname(lock, LEVELPREFIX, 3); + set_levelfile_name(g.lock, lev); + fq_lock = fqname(g.lock, LEVELPREFIX, 3); (void) unlink(fq_lock); } } diff --git a/src/save.c b/src/save.c index dd7915790..873ce91a5 100644 --- a/src/save.c +++ b/src/save.c @@ -120,9 +120,9 @@ dosave0() if (iflags.save_uburied) u.uburied = 1, iflags.save_uburied = 0; - if (!g.program_state.something_worth_saving || !SAVEF[0]) + if (!g.program_state.something_worth_saving || !g.SAVEF[0]) return 0; - fq_save = fqname(SAVEF, SAVEPREFIX, 1); /* level files take 0 */ + fq_save = fqname(g.SAVEF, SAVEPREFIX, 1); /* level files take 0 */ #if defined(UNIX) || defined(VMS) sethanguphandler((void FDECL((*), (int) )) SIG_IGN); diff --git a/sys/amiga/amidos.c b/sys/amiga/amidos.c index da8b5c818..09b47c943 100644 --- a/sys/amiga/amidos.c +++ b/sys/amiga/amidos.c @@ -279,7 +279,7 @@ saveDiskPrompt(start) BPTR fileLock; if (sysflags.asksavedisk) { /* Don't prompt if you can find the save file */ - if (fileLock = Lock(SAVEF, SHARED_LOCK)) { + if (fileLock = Lock(g.SAVEF, SHARED_LOCK)) { UnLock(fileLock); #if defined(TTY_GRAPHICS) if (windowprocs.win_init_nhwindows @@ -294,7 +294,7 @@ saveDiskPrompt(start) return 1; } pline("If save file is on a SAVE disk, put that disk in now."); - if (strlen(SAVEF) > QBUFSZ - 25 - 22) + if (strlen(g.SAVEF) > QBUFSZ - 25 - 22) panic("not enough buffer space for prompt"); /* THIS IS A HACK */ #if defined(TTY_GRAPHICS) @@ -305,7 +305,7 @@ saveDiskPrompt(start) #endif #if defined(AMII_GRAPHICS) if (windowprocs.win_init_nhwindows == amii_procs.win_init_nhwindows) { - getlind("File name ?", buf, SAVEF); + getlind("File name ?", buf, g.SAVEF); clear_nhwindow(WIN_BASE); } #endif @@ -314,11 +314,11 @@ saveDiskPrompt(start) return 0; /* Strip any whitespace. Also, if nothing was entered except - * whitespace, do not change the value of SAVEF. + * whitespace, do not change the value of g.SAVEF. */ for (bp = buf; *bp; bp++) { if (!isspace(*bp)) { - strncpy(SAVEF, bp, PATHLEN); + strncpy(g.SAVEF, bp, PATHLEN); break; } } diff --git a/sys/be/bemain.c b/sys/be/bemain.c index df76042ed..8b9c1f108 100644 --- a/sys/be/bemain.c +++ b/sys/be/bemain.c @@ -88,7 +88,7 @@ attempt_restore: if (yn("Do you want to keep the save file?") == 'n') (void) delete_savefile(); else { - nh_compress(fqname(SAVEF, SAVEPREFIX, 0)); + nh_compress(fqname(g.SAVEF, SAVEPREFIX, 0)); } } } diff --git a/sys/mac/macmain.c b/sys/mac/macmain.c index c33ee5cb4..48be0f487 100644 --- a/sys/mac/macmain.c +++ b/sys/mac/macmain.c @@ -102,7 +102,7 @@ attempt_restore: if (yn("Do you want to keep the save file?") == 'n') (void) delete_savefile(); else { - nh_compress(fqname(SAVEF, SAVEPREFIX, 0)); + nh_compress(fqname(g.SAVEF, SAVEPREFIX, 0)); } } } @@ -227,7 +227,7 @@ process_openfile(short src_vol, long src_dir, Str255 fName, OSType ftype) Str255 save_f_p; P2C(*(StringHandle) name, g.plname); set_savefile_name(TRUE); - C2P(fqname(SAVEF, SAVEPREFIX, 0), save_f_p); + C2P(fqname(g.SAVEF, SAVEPREFIX, 0), save_f_p); force_hdelete(theDirs.dataRefNum, theDirs.dataDirID, save_f_p); diff --git a/sys/share/pcmain.c b/sys/share/pcmain.c index 7575af27b..a86283fde 100644 --- a/sys/share/pcmain.c +++ b/sys/share/pcmain.c @@ -489,7 +489,7 @@ attempt_restore: if (yn("Do you want to keep the save file?") == 'n') (void) delete_savefile(); else { - nh_compress(fqname(SAVEF, SAVEPREFIX, 0)); + nh_compress(fqname(g.SAVEF, SAVEPREFIX, 0)); } } } diff --git a/sys/share/pcsys.c b/sys/share/pcsys.c index 5b96705ba..38e8fb4a0 100644 --- a/sys/share/pcsys.c +++ b/sys/share/pcsys.c @@ -285,7 +285,7 @@ int start; clear_nhwindow(WIN_MESSAGE); pline("If save file is on a save disk, insert that disk now."); mark_synch(); - Sprintf(qbuf, "File name (default \"%s\"%s) ?", SAVEF, + Sprintf(qbuf, "File name (default \"%s\"%s) ?", g.SAVEF, start ? "" : ", cancels save"); getlin(qbuf, buf); clear_nhwindow(WIN_MESSAGE); @@ -293,11 +293,11 @@ int start; return 0; /* Strip any whitespace. Also, if nothing was entered except - * whitespace, do not change the value of SAVEF. + * whitespace, do not change the value of g.SAVEF. */ for (bp = buf; *bp; bp++) if (!isspace((uchar) *bp)) { - strncpy(SAVEF, bp, PATHLEN); + strncpy(g.SAVEF, bp, PATHLEN); break; } } diff --git a/sys/unix/unixmain.c b/sys/unix/unixmain.c index b2a37d77a..fca896554 100644 --- a/sys/unix/unixmain.c +++ b/sys/unix/unixmain.c @@ -281,7 +281,7 @@ attempt_restore: } if (*g.plname && (fd = restore_saved_game()) >= 0) { - const char *fq_save = fqname(SAVEF, SAVEPREFIX, 1); + const char *fq_save = fqname(g.SAVEF, SAVEPREFIX, 1); (void) chmod(fq_save, 0); /* disallow parallel restores */ #ifndef NO_SIGNAL diff --git a/sys/vms/vmsmain.c b/sys/vms/vmsmain.c index 17ff9ad06..ec70e39f6 100644 --- a/sys/vms/vmsmain.c +++ b/sys/vms/vmsmain.c @@ -176,7 +176,7 @@ char *argv[]; */ attempt_restore: if ((fd = restore_saved_game()) >= 0) { - const char *fq_save = fqname(SAVEF, SAVEPREFIX, 1); + const char *fq_save = fqname(g.SAVEF, SAVEPREFIX, 1); (void) chmod(fq_save, 0); /* disallow parallel restores */ (void) signal(SIGINT, (SIG_RET_TYPE) done1); diff --git a/sys/vms/vmsunix.c b/sys/vms/vmsunix.c index fd0e10b6e..d79d2aa91 100644 --- a/sys/vms/vmsunix.c +++ b/sys/vms/vmsunix.c @@ -564,7 +564,7 @@ char ***outarray; char *charname, wildcard[255 + 1], filename[255 + 1]; genericptr_t context = 0; - Strcpy(wildcard, savetemplate); /* plname_from_file overwrites SAVEF */ + Strcpy(wildcard, savetemplate); /* plname_from_file overwrites g.SAVEF */ in.mbz = 0; /* class and type; leave them unspecified */ in.len = (unsigned short) strlen(wildcard); in.adr = wildcard; diff --git a/sys/winnt/windmain.c b/sys/winnt/windmain.c index 959005d62..b8fb2aa19 100644 --- a/sys/winnt/windmain.c +++ b/sys/winnt/windmain.c @@ -301,7 +301,7 @@ _CrtSetReportFile(_CRT_ASSERT, _CRTDBG_FILE_STDERR);*/ (void) fname_encode( "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_-.", '%', fnamebuf, encodedfnamebuf, BUFSZ); - Sprintf(lock, "%s", encodedfnamebuf); + Sprintf(g.lock, "%s", encodedfnamebuf); /* regularize(lock); */ /* we encode now, rather than substitute */ getlock(); @@ -343,7 +343,7 @@ attempt_restore: if (yn("Do you want to keep the save file?") == 'n') (void) delete_savefile(); else { - nh_compress(fqname(SAVEF, SAVEPREFIX, 0)); + nh_compress(fqname(g.SAVEF, SAVEPREFIX, 0)); } } } @@ -755,14 +755,14 @@ eraseoldlocks() */ for (i = 1; i <= MAXDUNGEON * MAXLEVEL + 1; i++) { /* try to remove all */ - set_levelfile_name(lock, i); - (void) unlink(fqname(lock, LEVELPREFIX, 0)); + set_levelfile_name(g.lock, i); + (void) unlink(fqname(g.lock, LEVELPREFIX, 0)); } - set_levelfile_name(lock, 0); + set_levelfile_name(g.lock, 0); #ifdef HOLD_LOCKFILE_OPEN really_close(); #endif - if (unlink(fqname(lock, LEVELPREFIX, 0))) + if (unlink(fqname(g.lock, LEVELPREFIX, 0))) return 0; /* cannot remove it */ return (1); /* success! */ } @@ -787,9 +787,9 @@ getlock() } /* regularize(lock); */ /* already done in pcmain */ - Sprintf(tbuf, "%s", fqname(lock, LEVELPREFIX, 0)); - set_levelfile_name(lock, 0); - fq_lock = fqname(lock, LEVELPREFIX, 1); + Sprintf(tbuf, "%s", fqname(g.lock, LEVELPREFIX, 0)); + set_levelfile_name(g.lock, 0); + fq_lock = fqname(g.lock, LEVELPREFIX, 1); if ((fd = open(fq_lock, 0)) == -1) { if (errno == ENOENT) goto gotlock; /* no such file */ diff --git a/util/lev_main.c b/util/lev_main.c index 17a144159..d540cb5fd 100644 --- a/util/lev_main.c +++ b/util/lev_main.c @@ -1614,11 +1614,6 @@ const char *s2; struct attribs attrmax, attrmin; /* files.c */ const char *configfile; -char lock[ARBITRARY_SIZE]; -char SAVEF[ARBITRARY_SIZE]; -#ifdef MICRO -char SAVEP[ARBITRARY_SIZE]; -#endif /* termcap.c */ struct tc_lcl_data tc_lcl_data; #ifdef TEXTCOLOR