summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2020-05-15 22:30:38 +0200
committerBram Moolenaar <Bram@vim.org>2020-05-15 22:30:38 +0200
commit76cb68309794def0fa7d1f2f72dd694b822186a5 (patch)
tree214f144d8da9e075c248a1b8218b2526de887a22
parent4aeeb6393824e375afad4d7291e8552917ad28b8 (diff)
patch 8.2.0762: buffer is not considered modified after setting crypt keyv8.2.0762
Problem: Buffer is not considered modified after setting crypt key. Solution: Set the modified flag. (Christian Brabandt, closes #6082)
-rw-r--r--src/optionstr.c3
-rw-r--r--src/testdir/test_crypt.vim26
-rw-r--r--src/version.c2
3 files changed, 31 insertions, 0 deletions
diff --git a/src/optionstr.c b/src/optionstr.c
index 17613a6567..ff0186f429 100644
--- a/src/optionstr.c
+++ b/src/optionstr.c
@@ -1157,8 +1157,11 @@ did_set_string_option(
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)
diff --git a/src/testdir/test_crypt.vim b/src/testdir/test_crypt.vim
index ab62d84708..fa26ba5501 100644
--- a/src/testdir/test_crypt.vim
+++ b/src/testdir/test_crypt.vim
@@ -110,3 +110,29 @@ func Test_crypt_key_mismatch()
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
diff --git a/src/version.c b/src/version.c
index c631d54fec..90773d3f9a 100644
--- a/src/version.c
+++ b/src/version.c
@@ -747,6 +747,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 762,
+/**/
761,
/**/
760,