From: PatR Date: Fri, 21 Dec 2018 02:58:44 +0000 (-0800) Subject: data.base lookup bit X-Git-Tag: NetHack-3.6.2_Released~127^2~1 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=4e1eecc7fa20472fbecaced78a8e4687d1d432c0;p=nethack data.base lookup bit When testing the change to the Eyes of the Overworld wording and asking for information about inventory item k - a pair of lenses named The Eyes of the Overworld I got "I don't have any information on those things". Not because that item wasn't identified, but because the lookup was for "pair of lenses" (finding nothing) and then for "The Eyes of the Overworld" (and not finding it due to "The" which is stripped from the first attempt but wasn't from the second nor present in the data.base key). --- diff --git a/doc/fixes36.2 b/doc/fixes36.2 index b4437d63a..b080b417d 100644 --- a/doc/fixes36.2 +++ b/doc/fixes36.2 @@ -293,6 +293,8 @@ vibrating square is not really a trap so monsters don't need to avoid it if hero kicks some embedded gold out of a wall while following vault gaurd away from vault, don't report "the guard _calms_down_and_ picks up the gold" unless he's on brink of going ballistic +for '/?' information lookup, "item named The Artifact" failed to find info + about "Artifact" due to presence of "The" Fixes to Post-3.6.1 Problems that Were Exposed Via git Repository diff --git a/src/pager.c b/src/pager.c index 6982860c9..f15c40f59 100644 --- a/src/pager.c +++ b/src/pager.c @@ -1,4 +1,4 @@ -/* NetHack 3.6 pager.c $NHDT-Date: 1545129848 2018/12/18 10:44:08 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.142 $ */ +/* NetHack 3.6 pager.c $NHDT-Date: 1545361111 2018/12/21 02:58:31 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.143 $ */ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /*-Copyright (c) Robert Patrick Rankin, 2018. */ /* NetHack may be freely redistributed. See license for details. */ @@ -576,6 +576,8 @@ char *supplemental_name; if (*dbase_str == ' ') ++dbase_str; } + if (!strncmp(dbase_str, "pair of ", 8)) + dbase_str += 8; if (!strncmp(dbase_str, "tame ", 5)) dbase_str += 5; else if (!strncmp(dbase_str, "peaceful ", 9)) @@ -640,6 +642,14 @@ char *supplemental_name; ep = strstri(dbase_str, ", "); if (ep && ep > dbase_str) *ep = '\0'; + /* remove article from 'alt' name ("a pair of lenses named + The Eyes of the Overworld" simplified above to "lenses named + The Eyes of the Overworld", now reduced to "The Eyes of the + Overworld", skip "The" as with base name processing) */ + if (!strncmpi(alt, "a ", 2) + || !strncmpi(alt, "an ", 3) + || !strncmpi(alt, "the ", 4)) + alt = index(alt, ' ') + 1; /* remove charges or "(lit)" or wizmode "(N aum)" */ if ((ep = strstri(dbase_str, " (")) != 0 && ep > dbase_str) *ep = '\0';