diff --git a/src/buffer.c b/src/buffer.c index fa01197854..26e3ec969d 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -1323,6 +1323,9 @@ empty_curbuf( close_buffer(NULL, buf, action, FALSE, FALSE); if (!close_others) need_fileinfo = FALSE; + else if (retval == OK && !shortmess(SHM_FILEINFO)) + // do_ecmd() does not display file info for a new empty buffer. + need_fileinfo = TRUE; return retval; } diff --git a/src/testdir/test_messages.vim b/src/testdir/test_messages.vim index 0942fe2b80..5fa84e9542 100644 --- a/src/testdir/test_messages.vim +++ b/src/testdir/test_messages.vim @@ -811,4 +811,28 @@ func Test_long_formatprg_no_hit_enter() call StopVimInTerminal(buf) endfunc +" Test that fileinfo is shown after deleting the last listed buffer with :bd +func Test_fileinfo_after_last_bd() + CheckRunVimInTerminal + + let content =<< trim END + set shortmess-=F + edit xxx + edit yyy + END + + call writefile(content, 'Xtest_fileinfo_last_bd', 'D') + let buf = RunVimInTerminal('-S Xtest_fileinfo_last_bd', #{rows: 10}) + call WaitForAssert({-> assert_match('^"yyy" \[New\]', term_getline(buf, 10))}) + + call term_sendkeys(buf, ":bd\") + call WaitForAssert({-> assert_match('^"xxx" \[New\]', term_getline(buf, 10))}) + + call term_sendkeys(buf, ":bd\") + call WaitForAssert({-> assert_match('^\"\[No Name\]\" --No lines in buffer--', term_getline(buf, 10))}) + + " clean up + call StopVimInTerminal(buf) +endfunc + " vim: shiftwidth=2 sts=2 expandtab diff --git a/src/version.c b/src/version.c index b7344e3871..a542cb79d6 100644 --- a/src/version.c +++ b/src/version.c @@ -734,6 +734,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 232, /**/ 231, /**/