diff src/testdir/test_timers.vim @ 27275:841145bb9885 v8.2.4166

patch 8.2.4166: undo synced when switching buffer in another window Commit: https://github.com/vim/vim/commit/e615db06046312e74886fa1ef98feb5a9db2a7c3 Author: Bram Moolenaar <Bram@vim.org> Date: Thu Jan 20 21:00:54 2022 +0000 patch 8.2.4166: undo synced when switching buffer in another window Problem: Undo synced when switching buffer in another window. Solution: Do not sync undo when not needed. (closes https://github.com/vim/vim/issues/9575)
author Bram Moolenaar <Bram@vim.org>
date Thu, 20 Jan 2022 22:15:03 +0100
parents d945799b4604
children 0c403f53b372
line wrap: on
line diff
--- a/src/testdir/test_timers.vim
+++ b/src/testdir/test_timers.vim
@@ -484,5 +484,28 @@ func Test_timer_outputting_message()
   call delete('XTest_timermessage')
 endfunc
 
+func Test_timer_using_win_execute_undo_sync()
+  let bufnr1 = bufnr()
+  new
+  let g:bufnr2 = bufnr()
+  let g:winid = win_getid()
+  exe "buffer " .. bufnr1
+  wincmd w
+  call setline(1, ['test'])
+  autocmd InsertEnter * call timer_start(100, { -> win_execute(g:winid, 'buffer ' .. g:bufnr2) })
+  call timer_start(200, { -> feedkeys("\<CR>bbbb\<Esc>") })
+  call feedkeys("Oaaaa", 'x!t')
+  " will hang here until the second timer fires
+  call assert_equal(['aaaa', 'bbbb', 'test'], getline(1, '$'))
+  undo
+  call assert_equal(['test'], getline(1, '$'))
+
+  bwipe!
+  bwipe!
+  unlet g:winid
+  unlet g:bufnr2
+  au! InsertEnter
+endfunc
+
 
 " vim: shiftwidth=2 sts=2 expandtab