diff src/testdir/test_quickfix.vim @ 22256:c3c9830c7cdc v8.2.1677

patch 8.2.1677: memory access errors when calling setloclist() in autocommand Commit: https://github.com/vim/vim/commit/4d170af0a9379da64d67dc3fa7cc7297956c6f52 Author: Bram Moolenaar <Bram@vim.org> Date: Sun Sep 13 22:21:22 2020 +0200 patch 8.2.1677: memory access errors when calling setloclist() in autocommand Problem: Memory access errors when calling setloclist() in an autocommand. Solution: Give an error if the list was changed unexpectedly. (closes https://github.com/vim/vim/issues/6946)
author Bram Moolenaar <Bram@vim.org>
date Sun, 13 Sep 2020 22:30:03 +0200
parents b7cc5d8ea702
children 849c6f766b19
line wrap: on
line diff
--- a/src/testdir/test_quickfix.vim
+++ b/src/testdir/test_quickfix.vim
@@ -1430,6 +1430,30 @@ func Test_quickfix_was_changed_by_autocm
   call XquickfixChangedByAutocmd('l')
 endfunc
 
+func Test_setloclist_in_autocommand()
+  call writefile(['test1', 'test2'], 'Xfile')
+  edit Xfile
+  let s:bufnr = bufnr()
+  call setloclist(1,
+        \ [{'bufnr' : s:bufnr, 'lnum' : 1, 'text' : 'test1'},
+        \  {'bufnr' : s:bufnr, 'lnum' : 2, 'text' : 'test2'}])
+
+  augroup Test_LocList
+    au!
+    autocmd BufEnter * call setloclist(1,
+          \ [{'bufnr' : s:bufnr, 'lnum' : 1, 'text' : 'test1'},
+          \  {'bufnr' : s:bufnr, 'lnum' : 2, 'text' : 'test2'}], 'r')
+  augroup END
+
+  lopen
+  call assert_fails('exe "normal j\<CR>"', 'E926:')
+
+  augroup Test_LocList
+    au!
+  augroup END
+  call delete('Xfile')
+endfunc
+
 func Test_caddbuffer_to_empty()
   helpgr quickfix
   call setqflist([], 'r')