SFX F 0 in [^i]n # Spion > Spionin ~
SFX F 0 nen in # Bauerin > Bauerinnen ~
+However, to avoid lots of errors in affix files written for Myspell, you can
+add the IGNOREEXTRA flag.
+
Apparently Myspell allows an affix name to appear more than once. Since this
might also be a mistake, Vim checks for an extra "S". The affix files for
Myspell that use this feature apparently have this flag. Example:
- CIRCUMFIX, as explained just below.
+IGNOREEXTRA *spell-IGNOREEXTRA*
+
+Normally Vim gives an error for an extra field that does not start with '#'.
+This avoids errors going unnoticed. However, some files created for Myspell
+or Hunspell may contain many entries with an extra field. Use the IGNOREEXTRA
+flag to avoid lots of errors.
+
+
CIRCUMFIX *spell-CIRCUMFIX*
The CIRCUMFIX flag means a prefix and suffix must be added at the same time.
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 */
{
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
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]);