From 45c23a757c6fc601a76a92f052f55eb3ed469364 Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Fri, 26 Aug 2022 20:18:02 +0800 Subject: vim-patch:9.0.0275: BufEnter not triggered when using ":edit" in "nofile" buffer Problem: BufEnter not triggered when using ":edit" in "nofile" buffer. Solution: Let readfile() return NOTDONE. (closes vim/vim#10986) https://github.com/vim/vim/commit/a9b5b85068b2fcb1c01ea20524e227bcad579ceb --- src/nvim/fileio.c | 2 +- src/nvim/testdir/test_autocmd.vim | 12 +++++++++++- 2 files changed, 12 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/nvim/fileio.c b/src/nvim/fileio.c index fdba186200..0b66878103 100644 --- a/src/nvim/fileio.c +++ b/src/nvim/fileio.c @@ -337,7 +337,7 @@ int readfile(char *fname, char *sfname, linenr_T from, linenr_T lines_to_skip, curbuf->b_op_start = orig_start; if (flags & READ_NOFILE) { - return FAIL; + return NOTDONE; // so that BufEnter can be triggered } } diff --git a/src/nvim/testdir/test_autocmd.vim b/src/nvim/testdir/test_autocmd.vim index f21b958f1a..778e5f9b9f 100644 --- a/src/nvim/testdir/test_autocmd.vim +++ b/src/nvim/testdir/test_autocmd.vim @@ -599,9 +599,19 @@ func Test_BufEnter() " On MS-Windows we can't edit the directory, make sure we wipe the right " buffer. bwipe! Xdir - call delete('Xdir', 'd') au! BufEnter + + " Editing a "nofile" buffer doesn't read the file but does trigger BufEnter + " for historic reasons. + new somefile + set buftype=nofile + au BufEnter somefile call setline(1, 'some text') + edit + call assert_equal('some text', getline(1)) + + bwipe! + au! BufEnter endfunc " Closing a window might cause an endless loop -- cgit