will now get proper "'s" endings; simple_monster_message() and simple_god_message() will now replace all "s's" with "'s" (there's no need to worry about the "its" rule here, since invisible monsters are excluded from the former, and no gods are named "It" or are invisible with regard to the latter); and the tutorial will now generically apostrophize the one god name it has (since doing the aforementioned replacement would take too long on the tutorial text). The high score message still appends "'s" unconditionally to user names, but they may not be English, so that seems okay to me.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@8281 c06c8d41-db1a-0410-9941-cceddc491573
LZH2H24IV7PQGTG4M3DMAEWDUGKMZD5FMPQXLVWYYCNUGA3XD5UAC
5NGWEQYBNPFMXWZDEEH6XPF6CNDEPR5ZHVRWK4GGEIR4YRASWEVAC
OMM5C5RLKVA4F4BZHDJA2XLZ4R3KUEW6VXY3XD53DF4YF4BWMDGAC
UT4UU6DS4RHLUQNMVEYZ7WSMC4OIUFP4PLV54XIFBY53ZAGMCWOAC
QLIDDODO7Q7S2UTKVR2SMRMEAXHRPA5C7SU267EQGV6VJ7UXW5JQC
4CK7LBQIQYKOEZ6B4YGRYDXV2ICEA3OHQHCXXVPNSMEKGPCHR52QC
7NDXS36TE7QVXTXJWMYSVG5UHCCLPIO4VL6NXFGTDK3ZNKE3A2IAC
77H4BWWPPGLM3PLZH4QTAJRXIZTSDVNCOKZE223I437FN2UJ34RQC
QXD3HX6QQ37PW6HVKIIKGFLO2ACROLUGKK66KFX7ED6SO4FDXB2AC
XDJGQNFELURGXMUAOOVALQMSLAJVHMG63KPKVA33HTJFVZROGZ4AC
K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC
N5FAAVHNKQZJV2G3JFRW7WKTXB3A4YY6GTVIMBCG5RSA65TKVBGQC
E5DMZFW6WCFAKTKKOQPYTQXZ2CGLWMVH64LRXDUI2UIG4VYUHIVQC
47NSOFQMBZCDIBHEAZSENFUGDSQCX3GJHFBUZ65ARDKCYIZ435LAC
EJRKMYKMOYRQXTWGFTMADEWIGWLMWHMUDA73AUT7HO5OBK2GUQEAC
J6APXOT4QOGQFONWB7G546VTVF6QG42HVOROMHF7YBDJPR4K26OAC
SJDOBXECX7F3ZPPVR7FPURE53D47PP2TFIF4SB6XPS456PZV3DQAC
W5VEC2PBIM5DMU5233HOWAZUEPTGWJRZZIA3H35YYQQW6BTP6XUAC
QDTVLBRGHDTRUVT7I3O72K6TMOYAUSAJBZUHGOEFU2RKJNUPWZSQC
SDLKLUNFGVKDS55DDJZCBAVIB7NL3RRYPTACAY65SCUQKV6APFSAC
// The proper possessive for a word ending in an "s" is to
// put an apostrophe after the "s": "Chris" -> "Chris'",
// not "Chris" -> "Chris's". Stupid English language...
msg = replace_all(msg, "s's", "s'");
msg = apostrophise_fixup(msg);
return (name + (lastc == 's' || lastc == 'x' ? "'" : "'s"));
return (name + (lastc == 's' ? "'" : "'s"));
}
std::string apostrophise_fixup(const std::string &msg)
{
if (msg.empty())
return (msg);
// XXX: This is rather hackish.
return (replace_all(msg, "s's", "s'"));