diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/nvim/quickfix.c | 13 | ||||
-rw-r--r-- | src/nvim/testdir/test_autocmd.vim | 14 |
2 files changed, 10 insertions, 17 deletions
diff --git a/src/nvim/quickfix.c b/src/nvim/quickfix.c index ea2d13761c..1aeadcec4a 100644 --- a/src/nvim/quickfix.c +++ b/src/nvim/quickfix.c @@ -3909,6 +3909,7 @@ load_dummy_buffer ( bufref_T newbuf_to_wipe; int failed = true; aco_save_T aco; + int readfile_result; // Allocate a buffer without putting it in the buffer list. newbuf = buflist_new(NULL, NULL, (linenr_T)1, BLN_DUMMY); @@ -3922,7 +3923,9 @@ load_dummy_buffer ( /* need to open the memfile before putting the buffer in a window */ if (ml_open(newbuf) == OK) { - /* set curwin/curbuf to buf and save a few things */ + // Make sure this buffer isn't wiped out by auto commands. + newbuf->b_locked++; + // set curwin/curbuf to buf and save a few things aucmd_prepbuf(&aco, newbuf); /* Need to set the filename for autocommands. */ @@ -3936,9 +3939,11 @@ load_dummy_buffer ( curbuf->b_flags &= ~BF_DUMMY; newbuf_to_wipe.br_buf = NULL; - if (readfile(fname, NULL, - (linenr_T)0, (linenr_T)0, (linenr_T)MAXLNUM, - NULL, READ_NEW | READ_DUMMY) == OK + readfile_result = readfile(fname, NULL, (linenr_T)0, (linenr_T)0, + (linenr_T)MAXLNUM, NULL, + READ_NEW | READ_DUMMY); + newbuf->b_locked--; + if (readfile_result == OK && !got_int && !(curbuf->b_flags & BF_NEW)) { failed = FALSE; diff --git a/src/nvim/testdir/test_autocmd.vim b/src/nvim/testdir/test_autocmd.vim index 16cf6965bd..d6ab4ff4e0 100644 --- a/src/nvim/testdir/test_autocmd.vim +++ b/src/nvim/testdir/test_autocmd.vim @@ -797,18 +797,6 @@ func Test_QuitPre() endfunc func Test_Cmdline() - au! CmdlineChanged : let g:text = getcmdline() - let g:text = 0 - call feedkeys(":echom 'hello'\<CR>", 'xt') - call assert_equal("echom 'hello'", g:text) - au! CmdlineChanged - - au! CmdlineChanged : let g:entered = expand('<afile>') - let g:entered = 0 - call feedkeys(":echom 'hello'\<CR>", 'xt') - call assert_equal(':', g:entered) - au! CmdlineChanged - au! CmdlineEnter : let g:entered = expand('<afile>') au! CmdlineLeave : let g:left = expand('<afile>') let g:entered = 0 @@ -983,7 +971,7 @@ func Test_Cmd_Autocmds() au BufWriteCmd XtestE call extend(g:lines, getline(0, '$')) wall " will write other window to 'lines' call assert_equal(4, len(g:lines), g:lines) - call assert_equal('asdf', g:lines[2]) + call assert_equal("\tasdf", g:lines[2]) au! BufReadCmd au! BufWriteCmd |