To: vim_dev@googlegroups.com Subject: Patch 7.4.447 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 7.4.447 Problem: Spell files from Hunspell may generate a lot of errors. Solution: Add the IGNOREEXTRA flag. Files: src/spell.c, runtime/doc/spell.txt *** ../vim-7.4.446/src/spell.c 2014-05-13 14:03:36.425611242 +0200 --- src/spell.c 2014-09-19 15:24:19.582412580 +0200 *************** *** 4841,4846 **** --- 4841,4847 ---- 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,5610 **** --- 5606,5615 ---- { 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,5720 **** 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] != '#' && (STRCMP(items[lasti], "-") != 0 || itemcnt != lasti + 1)) smsg((char_u *)_(e_afftrailing), fname, lnum, items[lasti]); --- 5717,5727 ---- int lasti = 5; /* Myspell allows extra text after the item, but that might ! * 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]); *** ../vim-7.4.446/runtime/doc/spell.txt 2013-11-12 04:43:57.000000000 +0100 --- runtime/doc/spell.txt 2014-09-19 15:18:00.318411751 +0200 *************** *** 1057,1062 **** --- 1058,1066 ---- 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: *************** *** 1110,1115 **** --- 1114,1127 ---- - 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. *** ../vim-7.4.446/src/version.c 2014-09-19 14:26:29.658405000 +0200 --- src/version.c 2014-09-19 15:18:41.774411842 +0200 *************** *** 743,744 **** --- 743,746 ---- { /* Add new patch number below this line */ + /**/ + 447, /**/ -- hundred-and-one symptoms of being an internet addict: 161. You get up before the sun rises to check your e-mail, and you find yourself in the very same chair long after the sun has set. /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ \\\ an exciting new programming language -- http://www.Zimbu.org /// \\\ help me help AIDS victims -- http://ICCF-Holland.org ///