the panic log
Add an optional paniclog file, controlled by a new PANICLOG macro that can be used to log all panic and impossible messages. Helpful when people forget to send, or didn't see, the message.
This commit is contained in:
@@ -149,3 +149,4 @@ showrace option
|
||||
travel option
|
||||
mouse_support wincap option
|
||||
debug mode: #panic routine to test panic() and panic save file generation
|
||||
a new PANICLOG optional file to log the reason for panic and impossible messages
|
||||
|
||||
@@ -131,9 +131,10 @@
|
||||
|
||||
/*
|
||||
* Section 2: Some global parameters and filenames.
|
||||
* Commenting out WIZARD, LOGFILE, or NEWS removes that feature
|
||||
* from the game; otherwise set the appropriate wizard name.
|
||||
* LOGFILE and NEWS refer to files in the playground.
|
||||
* Commenting out WIZARD, LOGFILE, NEWS or PANICLOG removes that
|
||||
* feature from the game; otherwise set the appropriate wizard
|
||||
* name. LOGFILE, NEWS and PANICLOG refer to files in the
|
||||
* playground.
|
||||
*/
|
||||
|
||||
#ifndef WIZARD /* allow for compile-time or Makefile changes */
|
||||
@@ -147,6 +148,7 @@
|
||||
|
||||
#define LOGFILE "logfile" /* larger file for debugging purposes */
|
||||
#define NEWS "news" /* the file containing the latest hack news */
|
||||
#define PANICLOG "paniclog" /* log of panic and impossible events */
|
||||
|
||||
/*
|
||||
* If COMPRESS is defined, it should contain the full path name of your
|
||||
|
||||
@@ -638,6 +638,7 @@ E void FDECL(check_recordfile, (const char *));
|
||||
#if defined(WIZARD)
|
||||
E void NDECL(read_wizkit);
|
||||
#endif
|
||||
E void FDECL(paniclog, (const char *, const char *));
|
||||
|
||||
/* ### fountain.c ### */
|
||||
|
||||
|
||||
@@ -294,6 +294,7 @@ panic VA_DECL(const char *, str)
|
||||
char buf[BUFSZ];
|
||||
Vsprintf(buf,str,VA_ARGS);
|
||||
raw_print(buf);
|
||||
paniclog("panic", buf);
|
||||
}
|
||||
#if defined(WIZARD) && (defined(UNIX) || defined(VMS) || defined(LATTICE) || defined(WIN32))
|
||||
if (wizard)
|
||||
|
||||
22
src/files.c
22
src/files.c
@@ -1782,4 +1782,26 @@ const char *dir;
|
||||
|
||||
/* ---------- END SCOREBOARD CREATION ----------- */
|
||||
|
||||
/* ---------- BEGIN PANIC/IMPOSSIBLE LOG ----------- */
|
||||
|
||||
/*ARGSUSED*/
|
||||
void
|
||||
paniclog(why, s)
|
||||
const char* why;
|
||||
const char* s;
|
||||
{
|
||||
#ifdef PANICLOG
|
||||
FILE *lfile;
|
||||
|
||||
lfile = fopen_datafile(PANICLOG, "a", TRUE);
|
||||
if (lfile) {
|
||||
(void) fprintf(lfile, "%08ld: %s %s\n",
|
||||
yyyymmdd((time_t)0L), why, s);
|
||||
(void) fclose(lfile);
|
||||
}
|
||||
#endif /* PANICLOG */
|
||||
}
|
||||
|
||||
/* ---------- END PANIC/IMPOSSIBLE LOG ----------- */
|
||||
|
||||
/*files.c*/
|
||||
|
||||
@@ -248,6 +248,11 @@ void
|
||||
impossible VA_DECL(const char *, s)
|
||||
VA_START(s);
|
||||
VA_INIT(s, const char *);
|
||||
{
|
||||
char pbuf[BUFSZ];
|
||||
Vsprintf(pbuf,s,VA_ARGS);
|
||||
paniclog("impossible", s);
|
||||
}
|
||||
vpline(s,VA_ARGS);
|
||||
pline("Program in disorder - perhaps you'd better #quit.");
|
||||
VA_END();
|
||||
|
||||
Reference in New Issue
Block a user