fix "singular of null?" warning for info lookup

Guard against the pathological cases of ", <anything>" and
" called <anything>" strings that a user could type in to indirectly
trigger impossible().  Now they'll yield "no info about such things".
This commit is contained in:
nethack.rankin
2003-08-14 02:40:24 +00:00
parent f5b1090fdc
commit 8b5d31eb01
2 changed files with 8 additions and 7 deletions

View File

@@ -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;