From c1fa8789c1ba5549dc37163dfa9be039c5092a41 Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Fri, 16 Feb 2024 06:35:30 +0800 Subject: vim-patch:9.1.0112: Remove undo information, when cleaning quickfix buffer Problem: When the quickfix buffer has been modified an autocommand may invalidate the undo stack (kawarimidoll) Solution: When clearing the quickfix buffer, also wipe the undo stack fixes: vim/vim#13905 closes: vim/vim#13928 https://github.com/vim/vim/commit/f0d3d4a42657dca996e790aa829de3c6be7fdb63 Co-authored-by: Christian Brabandt --- test/functional/legacy/autocmd_spec.lua | 40 +++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 test/functional/legacy/autocmd_spec.lua (limited to 'test/functional') diff --git a/test/functional/legacy/autocmd_spec.lua b/test/functional/legacy/autocmd_spec.lua new file mode 100644 index 0000000000..97051f3d3f --- /dev/null +++ b/test/functional/legacy/autocmd_spec.lua @@ -0,0 +1,40 @@ +local helpers = require('test.functional.helpers')(after_each) +local clear = helpers.clear +local write_file = helpers.write_file +local command = helpers.command +local feed = helpers.feed +local api = helpers.api +local eq = helpers.eq + +before_each(clear) + +-- oldtest: Test_autocmd_invalidates_undo_on_textchanged() +it('no E440 in quickfix window when autocommand invalidates undo', function() + write_file( + 'XTest_autocmd_invalidates_undo_on_textchanged', + [[ + set hidden + " create quickfix list (at least 2 lines to move line) + vimgrep /u/j % + + " enter quickfix window + cwindow + + " set modifiable + setlocal modifiable + + " set autocmd to clear quickfix list + + autocmd! TextChanged call setqflist([]) + " move line + move+1 + ]] + ) + finally(function() + os.remove('XTest_autocmd_invalidates_undo_on_textchanged') + end) + command('edit XTest_autocmd_invalidates_undo_on_textchanged') + command('so %') + feed('G') + eq('', api.nvim_get_vvar('errmsg')) +end) -- cgit