aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorFlorian Walch <florian@fwalch.com>2014-12-23 11:28:33 +0100
committerFlorian Walch <florian@fwalch.com>2014-12-23 16:14:46 +0100
commitd5bdc709d06d6d3452dbb7709351a22e6c12597e (patch)
treecebc24b465534490dbbed7a0976286613defac9c /src
parentc3de63bfbc168cd8ccc53dbb3e587043c11f7276 (diff)
downloadrneovim-d5bdc709d06d6d3452dbb7709351a22e6c12597e.tar.gz
rneovim-d5bdc709d06d6d3452dbb7709351a22e6c12597e.tar.bz2
rneovim-d5bdc709d06d6d3452dbb7709351a22e6c12597e.zip
vim-patch:7.4.447
Problem: Spell files from Hunspell may generate a lot of errors. Solution: Add the IGNOREEXTRA flag. https://code.google.com/p/vim/source/detail?r=v7-4-447
Diffstat (limited to 'src')
-rw-r--r--src/nvim/spell.c10
-rw-r--r--src/nvim/version.c2
2 files changed, 9 insertions, 3 deletions
diff --git a/src/nvim/spell.c b/src/nvim/spell.c
index 83dcddecd6..4759b4efa6 100644
--- a/src/nvim/spell.c
+++ b/src/nvim/spell.c
@@ -806,6 +806,7 @@ typedef struct afffile_S {
unsigned af_nosuggest; // NOSUGGEST ID
int af_pfxpostpone; // postpone prefixes without chop string and
// without flags
+ bool 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
@@ -4629,6 +4630,8 @@ static afffile_T *spell_read_aff(spellinfo_T *spin, char_u *fname)
spin->si_nosugfile = true;
} else if (is_aff_rule(items, itemcnt, "PFXPOSTPONE", 1)) {
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
@@ -4692,8 +4695,11 @@ static afffile_T *spell_read_aff(spellinfo_T *spin, char_u *fname)
cur_aff->ah_follows = false;
// Myspell allows extra text after the item, but that might
- // mean mistakes go unnoticed. Require a comment-starter.
- 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] != '#')
smsg((char_u *)_(e_afftrailing), fname, lnum, items[lasti]);
if (STRCMP(items[2], "Y") != 0 && STRCMP(items[2], "N") != 0)
diff --git a/src/nvim/version.c b/src/nvim/version.c
index cd11dfe1d0..eb07eb6d12 100644
--- a/src/nvim/version.c
+++ b/src/nvim/version.c
@@ -290,7 +290,7 @@ static int included_patches[] = {
//450,
//449,
//448 NA
- //447,
+ 447,
//446,
//445,
444,