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)
char_u *trunc;
if (*searchstr == NUL)
- p = spats[last_idx].pat;
+ p = spats[0].pat;
else
p = searchstr;
msgbuf = alloc((unsigned)(STRLEN(p) + 40));
/\%'(
/
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
static int included_patches[] =
{ /* Add new patch number below this line */
+/**/
+ 555,
/**/
554,
/**/