call assert_equal(3, done)
endfunc
+func Test_viminfo_clear_search_pattern()
+ let save = @/
+ let @/ = 'foobar'
+ defer delete('Xviminfo')
+ wviminfo Xviminfo
+ call assert_notequal(-1, match(readfile('Xviminfo'), 'foobar'))
+
+ let @/ = ''
+ wviminfo Xviminfo
+ call assert_equal(-1, match(readfile('Xviminfo'), 'foobar'))
+ call setreg('/', save)
+endfunc
+
func Test_global_vars()
let g:MY_GLOBAL_STRING = "Vim Editor"
let g:MY_GLOBAL_NUM = 345
*/
static int
-read_viminfo_search_pattern(vir_T *virp, int force)
+read_viminfo_search_pattern(vir_T *virp, int force, int writing)
{
char_u *lp;
int idx = -1;
TRUE);
if (val != NULL)
{
- set_last_search_pat(val, idx, magic, setlast);
- vim_free(val);
- spat->no_scs = no_scs;
- spat->off.line = off_line;
- spat->off.end = off_end;
- spat->off.off = off;
+ if (!writing)
+ {
+ set_last_search_pat(val, idx, magic, setlast);
+ spat->no_scs = no_scs;
+ spat->off.line = off_line;
+ spat->off.end = off_end;
+ spat->off.off = off;
#ifdef FEAT_SEARCH_EXTRA
- if (setlast)
- set_no_hlsearch(!hlsearch_on);
+ if (setlast)
+ set_no_hlsearch(!hlsearch_on);
#endif
+ }
+ vim_free(val);
}
}
}
case '/': // Search string
case '&': // Substitute search string
case '~': // Last search string, followed by '/' or '&'
- eof = read_viminfo_search_pattern(virp, forceit);
+ eof = read_viminfo_search_pattern(virp, forceit, writing);
break;
case '$':
eof = read_viminfo_sub_string(virp, forceit);