]> granicus.if.org Git - nethack/commitdiff
fix "singular of null?" warning for info lookup
authornethack.rankin <nethack.rankin>
Thu, 14 Aug 2003 02:40:24 +0000 (02:40 +0000)
committernethack.rankin <nethack.rankin>
Thu, 14 Aug 2003 02:40:24 +0000 (02:40 +0000)
     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".

doc/fixes34.2
src/pager.c

index 72bed2a1488955ae64a16181d9073ab4fa53a3d3..3b36754464888821486e3c2a88f6ef92e12d362c 100644 (file)
@@ -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
index ce0738f08e779a1ba924ad7a3868face13e8d6d8..5159188dcdfa04a659f9f20e9a04b1c4751679d7 100644 (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;