forked from aniani/vim
patch 8.2.4997: Python: changing hidden buffer can cause display mess up
Problem: Python: changing hidden buffer can cause the display to be messed
up.
Solution: Do not mark changed lines when using another buffer. (Paul Ollis,
closes #10437, closes #7972)
This commit is contained in:
@@ -4061,4 +4061,40 @@ func Test_python3_fold_hidden_buffer()
|
||||
bwipe! Xa.txt
|
||||
endfunc
|
||||
|
||||
" Test to catch regression fix #10437.
|
||||
func Test_python3_hidden_buf_mod_does_not_mess_up_display()
|
||||
CheckRunVimInTerminal
|
||||
|
||||
let testfile = 'Xtest.vim'
|
||||
let lines =<< trim END
|
||||
set hidden number
|
||||
new
|
||||
hide
|
||||
sil call setline(1, repeat(['aaa'], &lines) + ['bbbbbb'])
|
||||
fu Func()
|
||||
python3 << EOF
|
||||
import vim
|
||||
b = vim.buffers[2]
|
||||
b[:] = ['', '']
|
||||
EOF
|
||||
endfu
|
||||
norm! Gzb
|
||||
call feedkeys(":call Func()\r", 'n')
|
||||
END
|
||||
call writefile(lines, testfile)
|
||||
|
||||
let rows = 10
|
||||
let bufnr = term_start([GetVimProg(), '--clean', '-S', testfile], {'term_rows': rows})
|
||||
call TermWait(bufnr, 100)
|
||||
call assert_equal('run', job_status(term_getjob(bufnr)))
|
||||
let g:test_is_flaky = 0
|
||||
call WaitForAssert({-> assert_match('^ 3 aaa$', term_getline(bufnr, 1))})
|
||||
call WaitForAssert({-> assert_match('^ 11 bbbbbb$', term_getline(bufnr, rows - 1))})
|
||||
|
||||
call term_sendkeys(bufnr, ":qall!\<CR>")
|
||||
call WaitForAssert({-> assert_equal('dead', job_status(term_getjob(bufnr)))})
|
||||
exe bufnr . 'bwipe!'
|
||||
call delete(testfile)
|
||||
endfunc
|
||||
|
||||
" vim: shiftwidth=2 sts=2 expandtab
|
||||
|
||||
Reference in New Issue
Block a user