patch 8.2.2695: cursor position reset with nested autocommands
Problem: Cursor position reset with nested autocommands.
Solution: Only check and reset line numbers for not nested autocommands.
(closes #5820)
diff --git a/src/testdir/test_terminal.vim b/src/testdir/test_terminal.vim
index a82ad8c..e3a4b6e 100644
--- a/src/testdir/test_terminal.vim
+++ b/src/testdir/test_terminal.vim
@@ -2002,5 +2002,32 @@
call delete('Xcolorscript')
endfunc
+function On_BufFilePost()
+ doautocmd <nomodeline> User UserEvent
+endfunction
+
+func Test_terminal_nested_autocmd()
+ new
+ call setline(1, range(500))
+ $
+ let lastline = line('.')
+
+ augroup TermTest
+ autocmd BufFilePost * call On_BufFilePost()
+ autocmd User UserEvent silent
+ augroup END
+
+ let cmd = Get_cat_123_cmd()
+ let buf = term_start(cmd, #{term_finish: 'close', hidden: 1})
+ call assert_equal(lastline, line('.'))
+
+ call TermWait(buf)
+ exe buf . 'bwipe'
+ call delete('Xtext')
+ augroup TermTest
+ au!
+ augroup END
+endfunc
+
" vim: shiftwidth=2 sts=2 expandtab