vim-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 vim/vim#3647)
2fb8f684d8
This commit is contained in:
Jan Edmund Lazo
2020-09-12 18:42:48 -04:00
parent c7ef802206
commit d5eff30c72
2 changed files with 13 additions and 1 deletions

View File

@@ -1179,7 +1179,7 @@ int do_search(
}
if (*searchstr == NUL) {
p = spats[last_idx].pat;
p = spats[0].pat;
} else {
p = searchstr;
}

View File

@@ -982,6 +982,18 @@ func Test_search_sentence()
/
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
func Test_large_hex_chars1()
" This used to cause a crash, the character becomes an NFA state.
try