less verbose sanity checking
If the 'sanity_check' option triggers a warning, don't show the "Program in disorder! (Save and restore might fix this.)" and "Report these messages to <devteam>." messages and also don't run the crash report submission. Doesn't affect the fuzzer because it escalates impossible() to panic() before reaching those extra messages.
This commit is contained in:
@@ -428,7 +428,6 @@ extern void end_of_input(void);
|
||||
#endif
|
||||
extern char readchar(void);
|
||||
extern char readchar_poskey(coordxy *, coordxy *, int *);
|
||||
extern void sanity_check(void);
|
||||
extern char* key2txt(uchar, char *);
|
||||
extern char yn_function(const char *, const char *, char, boolean);
|
||||
extern char paranoid_ynq(boolean, const char *, boolean);
|
||||
@@ -3743,6 +3742,7 @@ extern void wizcustom_callback(winid win, int glyphnum, char *id);
|
||||
extern int wiz_display_macros(void);
|
||||
extern int wiz_mon_diff(void);
|
||||
#endif
|
||||
extern void sanity_check(void);
|
||||
|
||||
/* ### worm.c ### */
|
||||
|
||||
|
||||
@@ -783,6 +783,7 @@ struct sinfo {
|
||||
int in_parseoptions; /* in parseoptions */
|
||||
int in_role_selection; /* role/race/&c selection menus in progress */
|
||||
int in_getlin; /* inside interface getlin routine */
|
||||
int in_sanity_check; /* for impossible() during sanity checking */
|
||||
int config_error_ready; /* config_error_add is ready, available */
|
||||
int beyond_savefile_load; /* set when past savefile loading */
|
||||
#ifdef PANICLOG
|
||||
|
||||
10
src/pline.c
10
src/pline.c
@@ -1,4 +1,4 @@
|
||||
/* NetHack 3.7 pline.c $NHDT-Date: 1693083243 2023/08/26 20:54:03 $ $NHDT-Branch: keni-crashweb2 $:$NHDT-Revision: 1.124 $ */
|
||||
/* NetHack 3.7 pline.c $NHDT-Date: 1719819280 2024/07/01 07:34:40 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.130 $ */
|
||||
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
||||
/*-Copyright (c) Robert Patrick Rankin, 2018. */
|
||||
/* NetHack may be freely redistributed. See license for details. */
|
||||
@@ -594,6 +594,12 @@ impossible(const char *s, ...)
|
||||
pline("%s", pbuf);
|
||||
gp.pline_flags = 0;
|
||||
|
||||
if (gp.program_state.in_sanity_check) {
|
||||
/* skip rest of multi-line feedback */
|
||||
gp.program_state.in_impossible = 0;
|
||||
return;
|
||||
}
|
||||
|
||||
Strcpy(pbuf2, "Program in disorder!");
|
||||
if (gp.program_state.something_worth_saving)
|
||||
Strcat(pbuf2, " (Saving and reloading may fix this problem.)");
|
||||
@@ -608,7 +614,7 @@ impossible(const char *s, ...)
|
||||
boolean report = ('y' == yn_function("Report now?", ynchars,
|
||||
'n', FALSE));
|
||||
|
||||
raw_print(""); // prove to the user the character was accepted
|
||||
raw_print(""); /* prove to the user the character was accepted */
|
||||
if (report) {
|
||||
submit_web_report(1, "Impossible", pbuf);
|
||||
}
|
||||
|
||||
@@ -1435,6 +1435,7 @@ sanity_check(void)
|
||||
iflags.sanity_no_check = FALSE;
|
||||
return;
|
||||
}
|
||||
gp.program_state.in_sanity_check++;
|
||||
you_sanity_check();
|
||||
obj_sanity_check();
|
||||
timer_sanity_check();
|
||||
@@ -1443,6 +1444,7 @@ sanity_check(void)
|
||||
bc_sanity_check();
|
||||
trap_sanity_check();
|
||||
engraving_sanity_check();
|
||||
gp.program_state.in_sanity_check--;
|
||||
}
|
||||
|
||||
/* qsort() comparison routine for use in list_migrating_mons() */
|
||||
|
||||
Reference in New Issue
Block a user