summaryrefslogtreecommitdiff
path: root/src/spell.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/spell.c')
-rw-r--r--src/spell.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/spell.c b/src/spell.c
index 50636421e..1e52dfb26 100644
--- a/src/spell.c
+++ b/src/spell.c
@@ -4841,6 +4841,7 @@ typedef struct afffile_S
unsigned af_nosuggest; /* NOSUGGEST ID */
int af_pfxpostpone; /* postpone prefixes without chop string and
without flags */
+ int af_ignoreextra; /* IGNOREEXTRA present */
hashtab_T af_pref; /* hashtable for prefixes, affheader_T */
hashtab_T af_suff; /* hashtable for suffixes, affheader_T */
hashtab_T af_comp; /* hashtable for compound flags, compitem_T */
@@ -5605,6 +5606,10 @@ spell_read_aff(spin, fname)
{
aff->af_pfxpostpone = TRUE;
}
+ else if (is_aff_rule(items, itemcnt, "IGNOREEXTRA", 1))
+ {
+ aff->af_ignoreextra = TRUE;
+ }
else if ((STRCMP(items[0], "PFX") == 0
|| STRCMP(items[0], "SFX") == 0)
&& aff_todo == 0
@@ -5712,9 +5717,11 @@ spell_read_aff(spin, fname)
int lasti = 5;
/* Myspell allows extra text after the item, but that might
- * mean mistakes go unnoticed. Require a comment-starter.
- * Hunspell uses a "-" item. */
- if (itemcnt > lasti && *items[lasti] != '#'
+ * mean mistakes go unnoticed. Require a comment-starter,
+ * unless IGNOREEXTRA is used. Hunspell uses a "-" item. */
+ if (itemcnt > lasti
+ && !aff->af_ignoreextra
+ && *items[lasti] != '#'
&& (STRCMP(items[lasti], "-") != 0
|| itemcnt != lasti + 1))
smsg((char_u *)_(e_afftrailing), fname, lnum, items[lasti]);