patch 8.1.1475: search string not displayed when 'rightleft' is set

Problem:    Search string not displayed when 'rightleft' is set.
Solution:   Clear the right part of the old text. (closes #4488, closes #4489)
diff --git a/src/search.c b/src/search.c
index 423f3fc..ce87a3e 100644
--- a/src/search.c
+++ b/src/search.c
@@ -1462,6 +1462,7 @@
 		if (curwin->w_p_rl && *curwin->w_p_rlc == 's')
 		{
 		    char_u *r;
+		    size_t pat_len;
 
 		    r = reverse_text(msgbuf);
 		    if (r != NULL)
@@ -1471,9 +1472,13 @@
 			// move reversed text to beginning of buffer
 			while (*r != NUL && *r == ' ')
 			    r++;
-			mch_memmove(msgbuf, r, msgbuf + STRLEN(msgbuf) - r);
+			pat_len = msgbuf + STRLEN(msgbuf) - r;
+			mch_memmove(msgbuf, r, pat_len);
 			// overwrite old text
-			vim_memset(r, ' ', msgbuf + STRLEN(msgbuf) - r);
+			if ((size_t)(r - msgbuf) >= pat_len)
+			    vim_memset(r, ' ', pat_len);
+			else
+			    vim_memset(msgbuf + pat_len, ' ', r - msgbuf);
 		    }
 		}
 #endif