From: Hirohito Higashi Date: Sun, 22 Mar 2026 21:41:42 +0000 (+0000) Subject: patch 9.2.0232: fileinfo not shown after :bd of last listed buffer X-Git-Tag: v9.2.0232^0 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3d472d86753c451ce6914f70161ffc40ee37ea96;p=thirdparty%2Fvim.git patch 9.2.0232: fileinfo not shown after :bd of last listed buffer Problem: fileinfo not shown after :bd of last listed buffer (memeplex) Solution: Set need_fileinfo to true in empty_curbuf() (Hirohito Higashi) When deleting the last listed buffer with :bd, the new empty buffer's file info (e.g. "[No Name]" --No lines in buffer--) was not displayed. do_ecmd() only calls fileinfo() for existing buffers (oldbuf), not for newly created empty buffers. Set need_fileinfo in empty_curbuf() so the file info is displayed after redraw. fixes: #548 closes: #19802 Co-Authored-By: Claude Opus 4.6 (1M context) Signed-off-by: Hirohito Higashi Signed-off-by: Christian Brabandt --- 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, /**/