-/* NetHack 3.7 extern.h $NHDT-Date: 1637992233 2021/11/27 05:50:33 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.1018 $ */
+/* NetHack 3.7 extern.h $NHDT-Date: 1644524039 2022/02/10 20:13:59 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.1046 $ */
/* Copyright (c) Steve Creps, 1988. */
/* NetHack may be freely redistributed. See license for details. */
extern int argcheck(int, char **, enum earlyarg);
extern long timet_to_seconds(time_t);
extern long timet_delta(time_t, time_t);
+#ifndef NODUMPENUMS
+extern void dump_enums(void);
+#endif
/* ### apply.c ### */
extern void runtime_info_init(void);
extern const char *do_runtime_info(int *);
-#ifndef NODUMPENUMS
-extern void dump_enums(void);
-#endif
+extern void release_runtime_info(void);
/* ### mhitm.c ### */
-/* NetHack 3.7 date.c $NHDT-Date: 1639622347 2021/12/16 02:39:07 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.0 $ */
+/* NetHack 3.7 date.c $NHDT-Date: 1644524054 2022/02/10 20:14:14 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.1 $ */
/* Copyright (c) Michael Allison, 2021. */
/* NetHack may be freely redistributed. See license for details. */
if (nomakedefs.copyright_banner_c)
free((genericptr_t) nomakedefs.copyright_banner_c),
nomakedefs.copyright_banner_c = 0;
+#ifdef NETHACK_GIT_SHA
+ if (nomakedefs.git_sha)
+ free((genericptr_t) nomakedefs.git_sha),
+ nomakedefs.git_sha = 0;
+#endif
+#ifdef NETHACK_GIT_BRANCH
+ if (nomakedefs.git_branch)
+ free((genericptr_t) nomakedefs.git_branch),
+ nomakedefs.git_branch = 0;
+#endif
}
#endif /* __DATE__ && __TIME__ */
-/* NetHack 3.7 end.c $NHDT-Date: 1621380392 2021/05/18 23:26:32 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.225 $ */
+/* NetHack 3.7 end.c $NHDT-Date: 1644524059 2022/02/10 20:14:19 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.235 $ */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/*-Copyright (c) Robert Patrick Rankin, 2012. */
/* NetHack may be freely redistributed. See license for details. */
/*ARGSUSED*/
static void
-dump_everything(int how,
- time_t when) /* date+time at end of game */
+dump_everything(
+ int how, /* ASCENDED, ESCAPED, QUIT, etc */
+ time_t when) /* date+time at end of game */
{
#ifdef DUMPLOG
char pbuf[BUFSZ], datetimebuf[24]; /* [24]: room for 64-bit bogus value */
putstr(0, 0, "");
/* character name and basic role info */
- Sprintf(pbuf, "%s, %s %s %s %s", g.plname,
- aligns[1 - u.ualign.type].adj,
- genders[flags.female].adj,
- g.urace.adj,
- (flags.female && g.urole.name.f) ? g.urole.name.f : g.urole.name.m);
+ Sprintf(pbuf, "%s, %s %s %s %s",
+ g.plname, aligns[1 - u.ualign.type].adj,
+ genders[flags.female].adj, g.urace.adj,
+ (flags.female && g.urole.name.f) ? g.urole.name.f
+ : g.urole.name.m);
putstr(0, 0, pbuf);
putstr(0, 0, "");
dlb_cleanup();
l_nhcore_done();
}
- free_nomakedefs();
#ifdef VMS
/*
-/* NetHack 3.7 mdlib.c $NHDT-Date: 1608933420 2020/12/25 21:57:00 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.17 $ */
+/* NetHack 3.7 mdlib.c $NHDT-Date: 1644524060 2022/02/10 20:14:20 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.27 $ */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/*-Copyright (c) Kenneth Lorber, Kensington, Maryland, 2015. */
/* Copyright (c) M. Stephenson, 1990, 1991. */
/* these are in extern.h but we don't include hack.h */
void runtime_info_init(void);
const char *do_runtime_info(int *);
+void release_runtime_info(void);
void populate_nomakedefs(struct version_info *);
+extern void free_nomakedefs(void); /* date.c */
void build_options(void);
static int count_and_validate_winopts(void);
static void opt_out_words(char *, int *);
static void build_savebones_compat_string(void);
+
static int idxopttext, done_runtime_opt_init_once = 0;
#define MAXOPT 40
static char *opttext[120] = { 0 };
}
static void
-opt_out_words(char *str, /* input, but modified during processing */
- int *length_p) /* in/out */
+opt_out_words(
+ char *str, /* input, but modified during processing */
+ int *length_p) /* in/out */
{
char *word;
if (idxopttext < (MAXOPT - 1))
idxopttext++;
Sprintf(optbuf, "%s", opt_indent),
- *length_p = (int) strlen(opt_indent);
+ *length_p = (int) strlen(opt_indent);
} else {
Sprintf(eos(optbuf), " "), (*length_p)++;
}
return retval;
}
+void
+release_runtime_info()
+{
+ while (idxopttext > 0) {
+ --idxopttext;
+ free((genericptr_t) opttext[idxopttext]), opttext[idxopttext] = 0;
+ }
+ done_runtime_opt_init_once = 0;
+ free_nomakedefs();
+}
+
/*mdlib.c*/
-/* NetHack 3.7 save.c $NHDT-Date: 1606949327 2020/12/02 22:48:47 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.164 $ */
+/* NetHack 3.7 save.c $NHDT-Date: 1644524061 2022/02/10 20:14:21 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.181 $ */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/*-Copyright (c) Michael Allison, 2009. */
/* NetHack may be freely redistributed. See license for details. */
}
static void
-save_gamelog(NHFILE* nhfp)
+save_gamelog(NHFILE *nhfp)
{
struct gamelog_line *tmp = g.gamelog, *tmp2;
int slen;
if (perform_bwrite(nhfp)) {
if (nhfp->structlevel) {
slen = strlen(tmp->text);
- bwrite(nhfp->fd, (genericptr_t) &slen, sizeof(slen));
+ bwrite(nhfp->fd, (genericptr_t) &slen, sizeof slen);
bwrite(nhfp->fd, (genericptr_t) tmp->text, slen);
- bwrite(nhfp->fd, (genericptr_t) tmp, sizeof(struct gamelog_line));
+ bwrite(nhfp->fd, (genericptr_t) tmp,
+ sizeof (struct gamelog_line));
}
}
if (release_data(nhfp)) {
if (perform_bwrite(nhfp)) {
if (nhfp->structlevel) {
slen = -1;
- bwrite(nhfp->fd, (genericptr_t) &slen, sizeof(slen));
+ bwrite(nhfp->fd, (genericptr_t) &slen, sizeof slen);
}
}
if (release_data(nhfp))
#define free_timers(R) save_timers(&tnhfp, R)
#define free_light_sources(R) save_light_sources(&tnhfp, R)
#define free_animals() mon_animal_list(FALSE)
+#define discard_gamelog() save_gamelog(&tnhfp);
/* move-specific data */
dmonsfree(); /* release dead monsters */
#ifdef USER_SOUNDS
release_sound_mappings();
#endif
+#ifdef DUMPLOG
+ dumplogfreemessages();
+#endif
+ discard_gamelog();
+ release_runtime_info(); /* build-time options and version stuff */
#endif /* FREE_ALL_MEMORY */
if (VIA_WINDOWPORT())
status_finish();
-#ifdef DUMPLOG
- dumplogfreemessages();
-#endif
/* last, because it frees data that might be used by panic() to provide
feedback to the user; conceivably other freeing might trigger panic */