patch 8.2.5047: CurSearch highlight is often wrong
Problem: CurSearch highlight is often wrong.
Solution: Remember the last highlighted position and redraw when needed.
diff --git a/src/globals.h b/src/globals.h
index 3861e80..7100dcd 100644
--- a/src/globals.h
+++ b/src/globals.h
@@ -75,7 +75,14 @@
EXTERN int screen_cur_col INIT(= 0);
#ifdef FEAT_SEARCH_EXTRA
-EXTERN match_T screen_search_hl; // used for 'hlsearch' highlight matching
+// used for 'hlsearch' highlight matching
+EXTERN match_T screen_search_hl;
+
+// last lnum where CurSearch was displayed
+EXTERN linenr_T search_hl_has_cursor_lnum INIT(= 0);
+
+// don't use 'hlsearch' temporarily
+EXTERN int no_hlsearch INIT(= FALSE);
#endif
#ifdef FEAT_FOLDING
@@ -1418,11 +1425,6 @@
EXTERN int stl_syntax INIT(= 0);
#endif
-#ifdef FEAT_SEARCH_EXTRA
-// don't use 'hlsearch' temporarily
-EXTERN int no_hlsearch INIT(= FALSE);
-#endif
-
#if defined(FEAT_BEVAL) && !defined(NO_X11_INCLUDES)
EXTERN BalloonEval *balloonEval INIT(= NULL);
EXTERN int balloonEvalForTerm INIT(= FALSE);