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
|
travel option
|
||||||
mouse_support wincap option
|
mouse_support wincap option
|
||||||
debug mode: #panic routine to test panic() and panic save file generation
|
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.
|
* Section 2: Some global parameters and filenames.
|
||||||
* Commenting out WIZARD, LOGFILE, or NEWS removes that feature
|
* Commenting out WIZARD, LOGFILE, NEWS or PANICLOG removes that
|
||||||
* from the game; otherwise set the appropriate wizard name.
|
* feature from the game; otherwise set the appropriate wizard
|
||||||
* LOGFILE and NEWS refer to files in the playground.
|
* name. LOGFILE, NEWS and PANICLOG refer to files in the
|
||||||
|
* playground.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef WIZARD /* allow for compile-time or Makefile changes */
|
#ifndef WIZARD /* allow for compile-time or Makefile changes */
|
||||||
@@ -147,6 +148,7 @@
|
|||||||
|
|
||||||
#define LOGFILE "logfile" /* larger file for debugging purposes */
|
#define LOGFILE "logfile" /* larger file for debugging purposes */
|
||||||
#define NEWS "news" /* the file containing the latest hack news */
|
#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
|
* 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)
|
#if defined(WIZARD)
|
||||||
E void NDECL(read_wizkit);
|
E void NDECL(read_wizkit);
|
||||||
#endif
|
#endif
|
||||||
|
E void FDECL(paniclog, (const char *, const char *));
|
||||||
|
|
||||||
/* ### fountain.c ### */
|
/* ### fountain.c ### */
|
||||||
|
|
||||||
|
|||||||
@@ -294,6 +294,7 @@ panic VA_DECL(const char *, str)
|
|||||||
char buf[BUFSZ];
|
char buf[BUFSZ];
|
||||||
Vsprintf(buf,str,VA_ARGS);
|
Vsprintf(buf,str,VA_ARGS);
|
||||||
raw_print(buf);
|
raw_print(buf);
|
||||||
|
paniclog("panic", buf);
|
||||||
}
|
}
|
||||||
#if defined(WIZARD) && (defined(UNIX) || defined(VMS) || defined(LATTICE) || defined(WIN32))
|
#if defined(WIZARD) && (defined(UNIX) || defined(VMS) || defined(LATTICE) || defined(WIN32))
|
||||||
if (wizard)
|
if (wizard)
|
||||||
|
|||||||
22
src/files.c
22
src/files.c
@@ -1782,4 +1782,26 @@ const char *dir;
|
|||||||
|
|
||||||
/* ---------- END SCOREBOARD CREATION ----------- */
|
/* ---------- 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*/
|
/*files.c*/
|
||||||
|
|||||||
@@ -248,6 +248,11 @@ void
|
|||||||
impossible VA_DECL(const char *, s)
|
impossible VA_DECL(const char *, s)
|
||||||
VA_START(s);
|
VA_START(s);
|
||||||
VA_INIT(s, const char *);
|
VA_INIT(s, const char *);
|
||||||
|
{
|
||||||
|
char pbuf[BUFSZ];
|
||||||
|
Vsprintf(pbuf,s,VA_ARGS);
|
||||||
|
paniclog("impossible", s);
|
||||||
|
}
|
||||||
vpline(s,VA_ARGS);
|
vpline(s,VA_ARGS);
|
||||||
pline("Program in disorder - perhaps you'd better #quit.");
|
pline("Program in disorder - perhaps you'd better #quit.");
|
||||||
VA_END();
|
VA_END();
|
||||||
|
|||||||
Reference in New Issue
Block a user