Mercurial > vim
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 |