0
0
mirror of https://github.com/vim/vim.git synced 2025-09-25 03:54:15 -04:00

patch 8.1.0555: crash when last search pat is set but not last substitute pat

Problem:    Crash when last search pat is set but not last substitute pat.
Solution:   Do not mix up last search pattern and last subtitute pattern.
            (closes #3647)
This commit is contained in:
Bram Moolenaar
2018-12-01 13:14:45 +01:00
parent 614ab8aa00
commit 2fb8f684d8
3 changed files with 15 additions and 1 deletions

View File

@@ -1385,7 +1385,7 @@ do_search(
char_u *trunc; char_u *trunc;
if (*searchstr == NUL) if (*searchstr == NUL)
p = spats[last_idx].pat; p = spats[0].pat;
else else
p = searchstr; p = searchstr;
msgbuf = alloc((unsigned)(STRLEN(p) + 40)); msgbuf = alloc((unsigned)(STRLEN(p) + 40));

View File

@@ -1142,3 +1142,15 @@ func Test_search_sentence()
/\%'( /\%'(
/ /
endfunc endfunc
" Test that there is no crash when there is a last search pattern but no last
" substitute pattern.
func Test_no_last_substitute_pat()
" Use viminfo to set the last search pattern to a string and make the last
" substitute pattern the most recent used and make it empty (NULL).
call writefile(['~MSle0/bar', '~MSle0~&'], 'Xviminfo')
rviminfo! Xviminfo
call assert_fails('normal n', 'E35:')
call delete('Xviminfo')
endfunc

View File

@@ -792,6 +792,8 @@ static char *(features[]) =
static int included_patches[] = static int included_patches[] =
{ /* Add new patch number below this line */ { /* Add new patch number below this line */
/**/
555,
/**/ /**/
554, 554,
/**/ /**/