patch 8.1.1144: too strict checking of the 'spellfile' option

Problem:    Too strict checking of the 'spellfile' option.
Solution:   Allow for a path.
diff --git a/src/option.c b/src/option.c
index e4b1d5f..b0fad01 100644
--- a/src/option.c
+++ b/src/option.c
@@ -6040,6 +6040,20 @@
 }
 
 /*
+ * 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.
  */
@@ -7101,10 +7115,13 @@
     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))
diff --git a/src/testdir/test_spell.vim b/src/testdir/test_spell.vim
index 6bf43ac..b3143c9 100644
--- a/src/testdir/test_spell.vim
+++ b/src/testdir/test_spell.vim
@@ -376,6 +376,11 @@
   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")
diff --git a/src/version.c b/src/version.c
index 3e0e95f..1ffc751 100644
--- a/src/version.c
+++ b/src/version.c
@@ -772,6 +772,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1144,
+/**/
     1143,
 /**/
     1142,