From 18639d2ef228a3bce16ec578608c800556a1b75e Mon Sep 17 00:00:00 2001 From: PatR Date: Wed, 1 Jun 2022 01:03:11 -0700 Subject: [PATCH] send lua warnings to paniclog instead to player Now that the garbage collection problem has been fixed, record lua warnings in the paniclog file rather than showing them on the screen. Move nhl_warn()'s warnbuf[] to struct g in case restart ever gets implemented so that it can be cleared if the restart occurred while a warning message was under construction. --- include/decl.h | 3 ++- src/decl.c | 3 ++- src/nhlua.c | 20 ++++++++------------ 3 files changed, 12 insertions(+), 14 deletions(-) diff --git a/include/decl.h b/include/decl.h index ba1377698..662821287 100644 --- a/include/decl.h +++ b/include/decl.h @@ -1,4 +1,4 @@ -/* NetHack 3.7 decl.h $NHDT-Date: 1645000560 2022/02/16 08:36:00 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.283 $ */ +/* NetHack 3.7 decl.h $NHDT-Date: 1654070559 2022/06/01 08:02:39 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.296 $ */ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /*-Copyright (c) Michael Allison, 2007. */ /* NetHack may be freely redistributed. See license for details. */ @@ -1048,6 +1048,7 @@ struct instance_globals { /* nhlua.c */ genericptr_t luacore; /* lua_State * */ + char lua_warnbuf[BUFSZ]; /* o_init.c */ short disco[NUM_OBJECTS]; diff --git a/src/decl.c b/src/decl.c index 19b87151f..5cf81733a 100644 --- a/src/decl.c +++ b/src/decl.c @@ -1,4 +1,4 @@ -/* NetHack 3.7 decl.c $NHDT-Date: 1645000574 2022/02/16 08:36:14 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.248 $ */ +/* NetHack 3.7 decl.c $NHDT-Date: 1654070576 2022/06/01 08:02:56 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.255 $ */ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /*-Copyright (c) Michael Allison, 2009. */ /* NetHack may be freely redistributed. See license for details. */ @@ -511,6 +511,7 @@ const struct instance_globals g_init = { /* nhlua.c */ UNDEFINED_VALUE, /* luacore */ + DUMMY, /* lua_warnbuf[] */ /* o_init.c */ DUMMY, /* disco */ diff --git a/src/nhlua.c b/src/nhlua.c index 5fc39a7e1..097094696 100644 --- a/src/nhlua.c +++ b/src/nhlua.c @@ -1,4 +1,4 @@ -/* NetHack 3.7 nhlua.c $NHDT-Date: 1652897460 2022/05/18 18:11:00 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.78 $ */ +/* NetHack 3.7 nhlua.c $NHDT-Date: 1654070580 2022/06/01 08:03:00 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.83 $ */ /* Copyright (c) 2018 by Pasi Kallinen */ /* NetHack may be freely redistributed. See license for details. */ @@ -2278,21 +2278,17 @@ nhl_warn( const char *msg_fragment, int to_be_continued) /* 0: last fragment; 1: more to come */ { - static char warnbuf[BUFSZ]; - size_t fraglen, buflen = strlen(warnbuf); + size_t fraglen, buflen = strlen(g.lua_warnbuf); - if (msg_fragment && buflen < sizeof warnbuf - 1) { + if (msg_fragment && buflen < sizeof g.lua_warnbuf - 1) { fraglen = strlen(msg_fragment); - if (buflen + fraglen > sizeof warnbuf - 1) - fraglen = sizeof warnbuf - 1 - buflen; - (void) strncat(warnbuf, msg_fragment, fraglen); + if (buflen + fraglen > sizeof g.lua_warnbuf - 1) + fraglen = sizeof g.lua_warnbuf - 1 - buflen; + (void) strncat(g.lua_warnbuf, msg_fragment, fraglen); } if (!to_be_continued) { - /* this is a warning so probably ought to be delivered via - impossible() but until the current garbage collection issue - gets fixed that would be way too verbose */ - pline("[lua] %s", warnbuf); - warnbuf[0] = '\0'; + paniclog("[lua]", g.lua_warnbuf); + g.lua_warnbuf[0] = '\0'; } }