patch 9.1.0418: Cannot move to previous/next rare word

Problem:  Cannot move to previous/next rare word
          (Colin Kennedy)
Solution: Add the ]r and [r motions (Christ van Willegen)

fixes: #14773
closes: #14780

Signed-off-by: Christ van Willegen - van Noort <github.com@vanwillegen-vannoort.nl>
Signed-off-by: Christian Brabandt <cb@256bit.org>
diff --git a/src/spell.c b/src/spell.c
index 43c521d..3ae484c 100644
--- a/src/spell.c
+++ b/src/spell.c
@@ -1336,7 +1336,7 @@
 spell_move_to(
     win_T	*wp,
     int		dir,		// FORWARD or BACKWARD
-    int		allwords,	// TRUE for "[s"/"]s", FALSE for "[S"/"]S"
+    smt_T	behaviour,	// Behaviour of the function
     int		curline,
     hlf_T	*attrp)		// return: attributes of bad word or NULL
 				// (only when "dir" is FORWARD)
@@ -1441,7 +1441,9 @@
 	    if (attr != HLF_COUNT)
 	    {
 		// We found a bad word.  Check the attribute.
-		if (allwords || attr == HLF_SPB)
+		if (behaviour == SMT_ALL
+				|| (behaviour == SMT_BAD && attr == HLF_SPB)
+				|| (behaviour == SMT_RARE && attr == HLF_SPR))
 		{
 		    // When searching forward only accept a bad word after
 		    // the cursor.