article 'a' for Angel names

The recently revised priestname(), which is also used for angels
since they share the " of <deity>" suffix, included a test for
'!strncmp(,"Angel ",6)', assuming it was looking at the beginning
of "Angel of <deity>".  But the " of <deity>" part doesn't get
appended until later, so the test should be '!strcmp(,"Angel")'
without the trailing space.

Noticed by code inspection; I don't have a test case.  Like priests,
Angels are almost always referred to as "_the_ Angel of <deity>" so
the bad "Angel " check normally wouldn't get reached.

Also, fix an unrelated indentation bit in fixes3-7-0.txt.
This commit is contained in:
PatR
2024-09-21 15:55:25 -07:00
parent b4a636d25f
commit dd0d050508
2 changed files with 6 additions and 4 deletions

View File

@@ -119,7 +119,7 @@ tribute (Discworld snippets) typos, in book order rather than fix order:
#12 "or" -> "of", #14 second instance of "megalomaniac" misspelled
Lords and Ladies passage #5, near end add missing opening double
quote, passage #6 first footnote, insert omitted "be", passage #7
last paragraph, "to" -> "be"
last paragraph, "to" -> "be"
Men at Arms passage #1, italicize /for/, passage #2, insert omitted
word "had": 'it was /fate/ that _had_ let Edward'
Interesting Times passage #1, italicize several words

View File

@@ -314,7 +314,8 @@ priestname(
if (!mon->ispriest && !mon->isminion) /* should never happen... */
return strcpy(pname, what); /* caller must be confused */
/* this was done near the end but we want 'what' to be updated sooner */
/* for high priest(ess), "high" (or "grand" for poohbah) will be inserted
[this was done near the end but we want 'what' to be updated sooner] */
if (mon->ispriest || aligned_priest || high_priest)
what = do_hallu ? "poohbah" : mon->female ? "priestess" : "priest";
@@ -324,8 +325,9 @@ priestname(
article = ARTICLE_THE;
if (article == ARTICLE_THE) {
Strcpy(pname, "the ");
} else if (!strncmpi(what, "Angel ", 6)) {
/* bypass just_an(); it would yield "the " due to capital A */
} else if (!strcmp(what, "Angel")) {
/* bypass just_an(); it would yield "" due to treating capital A
as indicating a personal name */
Strcpy(pname, "an ");
} else {
(void) just_an(pname, what);