diff src/ex_getln.c @ 15083:70aa5caa9f0d v8.1.0552

patch 8.1.0552: saved last search pattern may not be restored commit https://github.com/vim/vim/commit/01a060da74b756b161e595b39a7877cb7612120a Author: Bram Moolenaar <Bram@vim.org> Date: Fri Nov 30 21:57:55 2018 +0100 patch 8.1.0552: saved last search pattern may not be restored Problem: Saved last search pattern may not be restored. Solution: Call restore_last_search_pattern(). Add a check for balancing saving and restoring the last search pattern.
author Bram Moolenaar <Bram@vim.org>
date Fri, 30 Nov 2018 22:00:06 +0100
parents 7b2dcca9e0c1
children 9df130fd5e0d
line wrap: on
line diff
--- a/src/ex_getln.c
+++ b/src/ex_getln.c
@@ -462,6 +462,7 @@ may_do_incsearch_highlighting(
     int		use_last_pat;
 
     // Parsing range may already set the last search pattern.
+    // NOTE: must call restore_last_search_pattern() before returning!
     save_last_search_pattern();
 
     if (!do_incsearch_highlighting(firstc, is_state, &skiplen, &patlen))
@@ -633,6 +634,7 @@ may_adjust_incsearch_highlighting(
     int	    save;
 
     // Parsing range may already set the last search pattern.
+    // NOTE: must call restore_last_search_pattern() before returning!
     save_last_search_pattern();
 
     if (!do_incsearch_highlighting(firstc, is_state, &skiplen, &patlen))
@@ -735,6 +737,7 @@ may_add_char_to_search(int firstc, int *
     int		skiplen, patlen;
 
     // Parsing range may already set the last search pattern.
+    // NOTE: must call restore_last_search_pattern() before returning!
     save_last_search_pattern();
 
     if (!do_incsearch_highlighting(firstc, is_state, &skiplen, &patlen))
@@ -742,6 +745,7 @@ may_add_char_to_search(int firstc, int *
 	restore_last_search_pattern();
 	return FAIL;
     }
+    restore_last_search_pattern();
 
     // Add a character from under the cursor for 'incsearch'.
     if (is_state->did_incsearch)