Skip to content

Commit

Permalink
patch 8.1.1144: too strict checking of the 'spellfile' option
Browse files Browse the repository at this point in the history
Problem:    Too strict checking of the 'spellfile' option.
Solution:   Allow for a path.
  • Loading branch information
brammool committed Apr 10, 2019
1 parent 8f130ed commit 862f1e1
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 2 deletions.
21 changes: 19 additions & 2 deletions src/option.c
Expand Up @@ -6039,6 +6039,20 @@ valid_spellang(char_u *val)
return valid_name(val, ".-_,");
}

/*
* Return TRUE if "val" is a valid 'spellfile' value.
*/
static int
valid_spellfile(char_u *val)
{
char_u *s;

for (s = val; *s != NUL; ++s)
if (!vim_isfilec(*s) && *s != ',')
return FALSE;
return TRUE;
}

/*
* Handle string options that need some action to perform when changed.
* Returns NULL for success, or an error message for an error.
Expand Down Expand Up @@ -7101,10 +7115,13 @@ did_set_string_option(
else if (varp == &(curwin->w_s->b_p_spl)
|| varp == &(curwin->w_s->b_p_spf))
{
if (!valid_spellang(*varp))
int is_spellfile = varp == &(curwin->w_s->b_p_spf);

if ((is_spellfile && !valid_spellfile(*varp))
|| (!is_spellfile && !valid_spellang(*varp)))
errmsg = e_invarg;
else
errmsg = did_set_spell_option(varp == &(curwin->w_s->b_p_spf));
errmsg = did_set_spell_option(is_spellfile);
}
/* When 'spellcapcheck' is set compile the regexp program. */
else if (varp == &(curwin->w_s->b_p_spc))
Expand Down
5 changes: 5 additions & 0 deletions src/testdir/test_spell.vim
Expand Up @@ -376,6 +376,11 @@ func Test_zz_sal_and_addition()
call assert_equal("elekwint", SecondSpellWord())
endfunc

func Test_spellfile_value()
set spellfile=Xdir/Xtest.latin1.add
set spellfile=Xdir/Xtest.utf-8.add,Xtest_other.add
endfunc

func Test_region_error()
messages clear
call writefile(["/regions=usgbnz", "elequint/0"], "Xtest.latin1.add")
Expand Down
2 changes: 2 additions & 0 deletions src/version.c
Expand Up @@ -771,6 +771,8 @@ static char *(features[]) =

static int included_patches[] =
{ /* Add new patch number below this line */
/**/
1144,
/**/
1143,
/**/
Expand Down

0 comments on commit 862f1e1

Please sign in to comment.