comparison src/testdir/test_vim9_script.vim @ 26745:dcd1c244e332 v8.2.3901

patch 8.2.3901: Vim9: Cannot set 'cpo' in main .vimrc if using Vim9 script Commit: https://github.com/vim/vim/commit/71eb3ad5790ef3d16369e2fceb040980d75539cf Author: Bram Moolenaar <Bram@vim.org> Date: Sun Dec 26 12:07:30 2021 +0000 patch 8.2.3901: Vim9: Cannot set 'cpo' in main .vimrc if using Vim9 script Problem: Vim9: Cannot set 'cpo' in main .vimrc if using Vim9 script. Solution: Do not restore 'cpo' at the end of the main .vimrc.
author Bram Moolenaar <Bram@vim.org>
date Sun, 26 Dec 2021 13:15:03 +0100
parents 10d3105030ab
children be85735650f7
comparison
equal deleted inserted replaced
26744:87a61ed592e6 26745:dcd1c244e332
4268 endif 4268 endif
4269 delete('Xsourced') 4269 delete('Xsourced')
4270 delete('Xclose') 4270 delete('Xclose')
4271 delete('Xdone') 4271 delete('Xdone')
4272 4272
4273 writefile(['vim9script'], 'XanotherScript') 4273 writefile(['vim9script', 'g:cpoval = &cpo'], 'XanotherScript')
4274 set cpo=aABceFsMny> 4274 set cpo=aABceFsMny>
4275 edit XanotherScript 4275 edit XanotherScript
4276 so % 4276 so %
4277 assert_equal('aABceFsMny>', &cpo) 4277 assert_equal('aABceFsMny>', &cpo)
4278 assert_equal('aABceFs', g:cpoval)
4278 :1del 4279 :1del
4280 setline(1, 'let g:cpoval = &cpo')
4279 w 4281 w
4280 so % 4282 so %
4281 assert_equal('aABceFsMny>', &cpo) 4283 assert_equal('aABceFsMny>', &cpo)
4284 assert_equal('aABceFsMny>', g:cpoval)
4282 4285
4283 delete('XanotherScript') 4286 delete('XanotherScript')
4284 set cpo&vim 4287 set cpo&vim
4288 unlet g:cpoval
4289
4290 if has('unix')
4291 # 'cpo' is not restored in main vimrc
4292 var save_HOME = $HOME
4293 $HOME = getcwd() .. '/Xhome'
4294 mkdir('Xhome')
4295 var lines =<< trim END
4296 vim9script
4297 writefile(['before: ' .. &cpo], 'Xresult')
4298 set cpo+=M
4299 writefile(['after: ' .. &cpo], 'Xresult', 'a')
4300 END
4301 writefile(lines, 'Xhome/.vimrc')
4302
4303 lines =<< trim END
4304 call writefile(['later: ' .. &cpo], 'Xresult', 'a')
4305 END
4306 writefile(lines, 'Xlegacy')
4307
4308 lines =<< trim END
4309 vim9script
4310 call writefile(['vim9: ' .. &cpo], 'Xresult', 'a')
4311 qa
4312 END
4313 writefile(lines, 'Xvim9')
4314
4315 var cmd = GetVimCommand() .. " -S Xlegacy -S Xvim9"
4316 cmd = substitute(cmd, '-u NONE', '', '')
4317 exe "silent !" .. cmd
4318
4319 assert_equal([
4320 'before: aABceFs',
4321 'after: aABceFsM',
4322 'later: aABceFsM',
4323 'vim9: aABceFs'], readfile('Xresult'))
4324
4325 $HOME = save_HOME
4326 delete('Xhome', 'rf')
4327 delete('Xlegacy')
4328 delete('Xvim9')
4329 delete('Xresult')
4330 endif
4285 enddef 4331 enddef
4286 4332
4287 " Use :function so we can use Check commands 4333 " Use :function so we can use Check commands
4288 func Test_no_redraw_when_restoring_cpo() 4334 func Test_no_redraw_when_restoring_cpo()
4289 CheckScreendump 4335 CheckScreendump