OSDN Git Service
(root)
/
hengbandforosx
/
hengbandosx.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
46c3450
)
Backport change from 3.0.0: avoid accessing before the start of the buffer in plural...
author
Eric Branlund
<ebranlund@fastmail.com>
Tue, 21 Jun 2022 18:25:50 +0000
(12:25 -0600)
committer
Eric Branlund
<ebranlund@fastmail.com>
Tue, 21 Jun 2022 18:25:50 +0000
(12:25 -0600)
src/cmd4.c
patch
|
blob
|
history
diff --git
a/src/cmd4.c
b/src/cmd4.c
index
25fc38b
..
2130514
100644
(file)
--- a/
src/cmd4.c
+++ b/
src/cmd4.c
@@
-6848,57
+6848,52
@@
void plural_aux(char *Name)
strcpy(dummy, "piles of ");
strcat(dummy, Name);
strcpy(Name, dummy);
strcpy(dummy, "piles of ");
strcat(dummy, Name);
strcpy(Name, dummy);
- return;
}
else if (strstr(Name, "Manes"))
{
return;
}
}
else if (strstr(Name, "Manes"))
{
return;
}
- else if (streq(&(Name[NameLen - 2]), "ey"))
- {
- strcpy(&(Name[NameLen - 2]), "eys");
- }
- else if (Name[NameLen - 1] == 'y')
+ else if (suffix(Name, "y") && !(NameLen >= 2 && is_a_vowel(Name[NameLen - 2])))
{
strcpy(&(Name[NameLen - 1]), "ies");
}
{
strcpy(&(Name[NameLen - 1]), "ies");
}
- else if (s
treq(&(Name[NameLen - 4])
, "ouse"))
+ else if (s
uffix(Name
, "ouse"))
{
strcpy(&(Name[NameLen - 4]), "ice");
}
{
strcpy(&(Name[NameLen - 4]), "ice");
}
- else if (s
treq(&(Name[NameLen - 2])
, "us"))
+ else if (s
uffix(Name
, "us"))
{
strcpy(&(Name[NameLen - 2]), "i");
}
{
strcpy(&(Name[NameLen - 2]), "i");
}
- else if (s
treq(&(Name[NameLen - 6])
, "kelman"))
+ else if (s
uffix(Name
, "kelman"))
{
strcpy(&(Name[NameLen - 6]), "kelmen");
}
{
strcpy(&(Name[NameLen - 6]), "kelmen");
}
- else if (s
treq(&(Name[NameLen - 8])
, "wordsman"))
+ else if (s
uffix(Name
, "wordsman"))
{
strcpy(&(Name[NameLen - 8]), "wordsmen");
}
{
strcpy(&(Name[NameLen - 8]), "wordsmen");
}
- else if (s
treq(&(Name[NameLen - 7])
, "oodsman"))
+ else if (s
uffix(Name
, "oodsman"))
{
strcpy(&(Name[NameLen - 7]), "oodsmen");
}
{
strcpy(&(Name[NameLen - 7]), "oodsmen");
}
- else if (s
treq(&(Name[NameLen - 7])
, "eastman"))
+ else if (s
uffix(Name
, "eastman"))
{
strcpy(&(Name[NameLen - 7]), "eastmen");
}
{
strcpy(&(Name[NameLen - 7]), "eastmen");
}
- else if (s
treq(&(Name[NameLen - 8])
, "izardman"))
+ else if (s
uffix(Name
, "izardman"))
{
strcpy(&(Name[NameLen - 8]), "izardmen");
}
{
strcpy(&(Name[NameLen - 8]), "izardmen");
}
- else if (s
treq(&(Name[NameLen - 5])
, "geist"))
+ else if (s
uffix(Name
, "geist"))
{
strcpy(&(Name[NameLen - 5]), "geister");
}
{
strcpy(&(Name[NameLen - 5]), "geister");
}
- else if (s
treq(&(Name[NameLen - 2])
, "ex"))
+ else if (s
uffix(Name
, "ex"))
{
strcpy(&(Name[NameLen - 2]), "ices");
}
{
strcpy(&(Name[NameLen - 2]), "ices");
}
- else if (s
treq(&(Name[NameLen - 2])
, "lf"))
+ else if (s
uffix(Name
, "lf"))
{
strcpy(&(Name[NameLen - 2]), "lves");
}
{
strcpy(&(Name[NameLen - 2]), "lves");
}