patch 8.2.0956: spell test fails

Problem:    Spell test fails.
Solution:   Add missing change the spell checking.
diff --git a/src/spell.c b/src/spell.c
index 102355f..8558d39 100644
--- a/src/spell.c
+++ b/src/spell.c
@@ -173,6 +173,8 @@
     int		wrongcaplen = 0;
     int		lpi;
     int		count_word = docount;
+    int		use_camel_case = *wp->w_s->b_p_spo != NUL;
+    int		camel_case = 0;
 
     // A word never starts at a space or a control character.  Return quickly
     // then, skipping over the character.
@@ -204,9 +206,27 @@
     mi.mi_fend = ptr;
     if (spell_iswordp(mi.mi_fend, wp))
     {
+	int prev_upper;
+	int this_upper;
+
+	if (use_camel_case)
+	{
+	    c = PTR2CHAR(mi.mi_fend);
+	    this_upper = SPELL_ISUPPER(c);
+	}
+
 	do
+	{
 	    MB_PTR_ADV(mi.mi_fend);
-	while (*mi.mi_fend != NUL && spell_iswordp(mi.mi_fend, wp));
+	    if (use_camel_case)
+	    {
+		prev_upper = this_upper;
+		c = PTR2CHAR(mi.mi_fend);
+		this_upper = SPELL_ISUPPER(c);
+		camel_case = !prev_upper && this_upper;
+	    }
+	} while (*mi.mi_fend != NUL && spell_iswordp(mi.mi_fend, wp)
+							       && !camel_case);
 
 	if (capcol != NULL && *capcol == 0 && wp->w_s->b_cap_prog != NULL)
 	{
@@ -237,6 +257,10 @@
 							     MAXWLEN + 1);
     mi.mi_fwordlen = (int)STRLEN(mi.mi_fword);
 
+    if (camel_case)
+	// Introduce a fake word end space into the folded word.
+	mi.mi_fword[mi.mi_fwordlen - 1] = ' ';
+
     // The word is bad unless we recognize it.
     mi.mi_result = SP_BAD;
     mi.mi_result2 = SP_BAD;