If you get "you have summoned <demon>" after making a same-race
sacrifice, treat that as having been the "<demon> appears" message so that
the latter won't be given if it subsequently teleports to you after you've
moved out of sight of it. There are probably some more cases like this
still lurking in the code.
Strcpy(dbuf, a_monnam(dmon));
if (!strcmpi(dbuf, "it"))
Strcpy(dbuf, "something dreadful");
+ else
+ dmon->mstrategy &= ~STRAT_APPEARMSG;
You("have summoned %s!", dbuf);
if (sgn(u.ualign.type) == sgn(dmon->data->maligntyp))
dmon->mpeaceful = TRUE;