if (STRCMP(curbuf->b_p_key, oldval) != 0)
// Need to update the swapfile.
+ {
ml_set_crypt_key(curbuf, oldval,
*curbuf->b_p_cm == NUL ? p_cm : curbuf->b_p_cm);
+ changed_internal();
+ }
}
else if (gvarp == &p_cm)
bwipe!
endfunc
+func Test_crypt_set_key_changes_buffer()
+
+ new Xtest1.txt
+ call setline(1, 'nothing')
+ set cryptmethod=blowfish2
+ call feedkeys(":X\<CR>foobar\<CR>foobar\<CR>", 'xt')
+ call assert_fails(":q", "E37:")
+ w
+ set key=anotherkey
+ call assert_fails(":bw")
+ w
+ call feedkeys(":X\<CR>foobar\<CR>foobar\<CR>", 'xt')
+ call assert_fails(":bw")
+ w
+ let winnr = winnr()
+ wincmd p
+ call setwinvar(winnr, '&key', 'yetanotherkey')
+ wincmd p
+ call assert_fails(":bw")
+ w
+
+ set cryptmethod&
+ set key=
+ bwipe!
+ call delete('Xtest1.txt')
+endfunc