# HG changeset patch # User Bram Moolenaar # Date 1563826504 -7200 # Node ID d2a834aa7cc048d0a043aee80954e04cc78c061e # Parent 30eb99624cdda234aa7e82d5bce4d5ba65dc137d patch 8.1.1733: the man ftplugin leaves an empty buffer behind commit https://github.com/vim/vim/commit/e5e6950193ddf365c6c507ddefcd7f9db939e5ac Author: Bram Moolenaar Date: Mon Jul 22 22:09:21 2019 +0200 patch 8.1.1733: the man ftplugin leaves an empty buffer behind Problem: The man ftplugin leaves an empty buffer behind. Solution: Don't make new window and edit, use split. (Jason Franklin) diff --git a/runtime/ftplugin/man.vim b/runtime/ftplugin/man.vim --- a/runtime/ftplugin/man.vim +++ b/runtime/ftplugin/man.vim @@ -1,7 +1,8 @@ " Vim filetype plugin file " Language: man " Maintainer: SungHyun Nam -" Last Change: 2019 Jan 22 +" Last Change: 2019 Jul 22 +" (fix by Jason Franklin) " To make the ":Man" command available before editing a manual page, source " this script from your startup vimrc file. @@ -143,6 +144,8 @@ func GetPage(cmdmods, ...) exec "let s:man_tag_col_".s:man_tag_depth." = ".col(".") let s:man_tag_depth = s:man_tag_depth + 1 + let open_cmd = 'edit' + " Use an existing "man" window if it exists, otherwise open a new one. if &filetype != "man" let thiswin = winnr() @@ -161,24 +164,22 @@ func GetPage(cmdmods, ...) endif if &filetype != "man" if exists("g:ft_man_open_mode") - if g:ft_man_open_mode == "vert" - vnew - elseif g:ft_man_open_mode == "tab" - tabnew + if g:ft_man_open_mode == 'vert' + let open_cmd = 'vsplit' + elseif g:ft_man_open_mode == 'tab' + let open_cmd = 'tabedit' else - new + let open_cmd = 'split' endif else - if a:cmdmods != '' - exe a:cmdmods . ' new' - else - new - endif + let open_cmd = a:cmdmods . ' split' endif setl nonu fdc=0 endif endif - silent exec "edit $HOME/".page.".".sect."~" + + silent execute open_cmd . " $HOME/" . page . '.' . sect . '~' + " Avoid warning for editing the dummy file twice setl buftype=nofile noswapfile diff --git a/src/testdir/test_man.vim b/src/testdir/test_man.vim --- a/src/testdir/test_man.vim +++ b/src/testdir/test_man.vim @@ -46,6 +46,8 @@ function Test_g_ft_man_open_mode() call assert_equal(2, tabpagenr('$')) call assert_equal(2, tabpagenr()) q + + unlet g:ft_man_open_mode endfunction function Test_nomodifiable() @@ -58,3 +60,29 @@ function Test_nomodifiable() call assert_false(&l:modifiable) q endfunction + +function Test_buffer_count_hidden() + %bw! + set hidden + + call assert_equal(1, len(getbufinfo())) + + let wincnt = winnr('$') + Man vim + if wincnt == winnr('$') + " Vim manual page cannot be found. + return + endif + + call assert_equal(1, len(getbufinfo({'buflisted':1}))) + call assert_equal(2, len(getbufinfo())) + q + + Man vim + + call assert_equal(1, len(getbufinfo({'buflisted':1}))) + call assert_equal(2, len(getbufinfo())) + q + + set hidden& +endfunction diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -778,6 +778,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1733, +/**/ 1732, /**/ 1731,