diff src/testdir/test_vim9_script.vim @ 24150:4919f2d8d7fd v8.2.2616

patch 8.2.2616: Vim9: if 'cpo' is change in Vim9 script it may be restored Commit: https://github.com/vim/vim/commit/3e1916947d5b29f67af554ce3b874b03a84c9093 Author: Bram Moolenaar <Bram@vim.org> Date: Wed Mar 17 17:46:00 2021 +0100 patch 8.2.2616: Vim9: if 'cpo' is change in Vim9 script it may be restored Problem: Vim9: if 'cpo' is change in Vim9 script it may be restored. Solution: Apply the changes to 'cpo' to the restored value.
author Bram Moolenaar <Bram@vim.org>
date Wed, 17 Mar 2021 18:00:04 +0100
parents 0edc315f2d0c
children 93e69703a290
line wrap: on
line diff
--- a/src/testdir/test_vim9_script.vim
+++ b/src/testdir/test_vim9_script.vim
@@ -1250,17 +1250,23 @@ def Test_vim9_import_export()
   delete('Xexport.vim')
 
   # Check that in a Vim9 script 'cpo' is set to the Vim default.
-  set cpo&vi
-  var cpo_before = &cpo
+  # Flags added or removed are also applied to the restored value.
+  set cpo=abcd
   var lines =<< trim END
     vim9script
     g:cpo_in_vim9script = &cpo
+    set cpo+=f
+    set cpo-=c
+    g:cpo_after_vim9script = &cpo
   END
   writefile(lines, 'Xvim9_script')
   source Xvim9_script
-  assert_equal(cpo_before, &cpo)
+  assert_equal('fabd', &cpo)
   set cpo&vim
   assert_equal(&cpo, g:cpo_in_vim9script)
+  var newcpo = substitute(&cpo, 'c', '', '') .. 'f'
+  assert_equal(newcpo, g:cpo_after_vim9script)
+
   delete('Xvim9_script')
 enddef