From: nethack.rankin Date: Thu, 14 Aug 2003 02:40:24 +0000 (+0000) Subject: fix "singular of null?" warning for info lookup X-Git-Tag: MOVE2GIT~1855 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=8b5d31eb012377a610e457fbe20b81a925f56d20;p=nethack fix "singular of null?" warning for info lookup Guard against the pathological cases of ", " and " called " strings that a user could type in to indirectly trigger impossible(). Now they'll yield "no info about such things". --- diff --git a/doc/fixes34.2 b/doc/fixes34.2 index 72bed2a14..3b3675446 100644 --- a/doc/fixes34.2 +++ b/doc/fixes34.2 @@ -125,6 +125,7 @@ do not let an attached iron ball drag the hero through a location that the hero could not move normally hero's appearance should change immediately after mimicing completes avoid some uses of "it" in killer messages +avoid "singular of null?" warning for info lookup of obscure user input Platform- and/or Interface-Specific Fixes diff --git a/src/pager.c b/src/pager.c index ce0738f08..5159188dc 100644 --- a/src/pager.c +++ b/src/pager.c @@ -1,4 +1,4 @@ -/* SCCS Id: @(#)pager.c 3.4 2003/06/29 */ +/* SCCS Id: @(#)pager.c 3.4 2003/08/13 */ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /* NetHack may be freely redistributed. See license for details. */ @@ -152,10 +152,9 @@ lookat(x, y, buf, monbuf) /* newsym lets you know of the trap, so mention it here */ if (tt == BEAR_TRAP || tt == PIT || - tt == SPIKED_PIT ||tt == WEB) { - Strcat(buf, ", trapped in "); - Strcat(buf, defsyms[trap_to_defsym(tt)].explanation); - } + tt == SPIKED_PIT || tt == WEB) + Sprintf(eos(buf), ", trapped in %s", + an(defsyms[trap_to_defsym(tt)].explanation)); } { @@ -349,12 +348,13 @@ checkfile(inp, pm, user_typed_name, without_asking) if (*dbase_str) { /* adjust the input to remove "named " and convert to lower case */ char *alt = 0; /* alternate description */ + if ((ep = strstri(dbase_str, " named ")) != 0) alt = ep + 7; else ep = strstri(dbase_str, " called "); - if (ep) *ep = '\0'; - else if ((ep = strstri(dbase_str, ", ")) != 0) *ep = '\0'; + if (!ep) ep = strstri(dbase_str, ", "); + if (ep && ep > dbase_str) *ep = '\0'; /* * If the object is named, then the name is the alternate description;