]> granicus.if.org Git - vim/commitdiff
patch 8.1.0556: saving/restoring search patterns share saved last_idx v8.1.0556
authorBram Moolenaar <Bram@vim.org>
Sat, 1 Dec 2018 20:08:21 +0000 (21:08 +0100)
committerBram Moolenaar <Bram@vim.org>
Sat, 1 Dec 2018 20:08:21 +0000 (21:08 +0100)
Problem:    Saving/restoring search patterns share saved last_idx.
Solution:   Use a separate saved last_idx for saving search patterns for
            functions and incremental search.

src/search.c
src/version.c

index 6d245caffc076997574ee33dc5e83c7e7b648d0c..0cbbf4fefb94a3e617505d765498b9ef1a8bc662 100644 (file)
@@ -93,12 +93,8 @@ static int   lastc_bytelen = 1;      /* >1 for multi-byte char */
 /* copy of spats[], for keeping the search patterns while executing autocmds */
 static struct spat  saved_spats[2];
 # ifdef FEAT_SEARCH_EXTRA
-/* copy of spats[RE_SEARCH], for keeping the search patterns while incremental
- * searching */
-static struct spat  saved_last_search_spat;
-static int         did_save_last_search_spat = 0;
-static int         saved_last_idx = 0;
-static int         saved_no_hlsearch = 0;
+static int         saved_spats_last_idx = 0;
+static int         saved_spats_no_hlsearch = 0;
 # endif
 
 static char_u      *mr_pattern = NULL; /* pattern used by search_regcomp() */
@@ -310,8 +306,8 @@ save_search_patterns(void)
        if (spats[1].pat != NULL)
            saved_spats[1].pat = vim_strsave(spats[1].pat);
 #ifdef FEAT_SEARCH_EXTRA
-       saved_last_idx = last_idx;
-       saved_no_hlsearch = no_hlsearch;
+       saved_spats_last_idx = last_idx;
+       saved_spats_no_hlsearch = no_hlsearch;
 #endif
     }
 }
@@ -329,8 +325,8 @@ restore_search_patterns(void)
        vim_free(spats[1].pat);
        spats[1] = saved_spats[1];
 #ifdef FEAT_SEARCH_EXTRA
-       last_idx = saved_last_idx;
-       set_no_hlsearch(saved_no_hlsearch);
+       last_idx = saved_spats_last_idx;
+       set_no_hlsearch(saved_spats_no_hlsearch);
 #endif
     }
 }
@@ -354,6 +350,13 @@ free_search_patterns(void)
 #endif
 
 #ifdef FEAT_SEARCH_EXTRA
+// copy of spats[RE_SEARCH], for keeping the search patterns while incremental
+// searching
+static struct spat  saved_last_search_spat;
+static int         did_save_last_search_spat = 0;
+static int         saved_last_idx = 0;
+static int         saved_no_hlsearch = 0;
+
 /*
  * Save and restore the search pattern for incremental highlight search
  * feature.
@@ -575,7 +578,7 @@ set_last_search_pat(
            saved_spats[idx].pat = NULL;
        else
            saved_spats[idx].pat = vim_strsave(spats[idx].pat);
-       saved_last_idx = last_idx;
+       saved_spats_last_idx = last_idx;
     }
 # ifdef FEAT_SEARCH_EXTRA
     /* If 'hlsearch' set and search pat changed: need redraw. */
index 566f94da55a81071b411c4f9a013db69dbd5dc95..55a9af65ccaf08a6e9a49407fe3d7abe2946c95d 100644 (file)
@@ -792,6 +792,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    556,
 /**/
     555,
 /**/