changeset 17470:d2a834aa7cc0 v8.1.1733

patch 8.1.1733: the man ftplugin leaves an empty buffer behind commit https://github.com/vim/vim/commit/e5e6950193ddf365c6c507ddefcd7f9db939e5ac Author: Bram Moolenaar <Bram@vim.org> 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)
author Bram Moolenaar <Bram@vim.org>
date Mon, 22 Jul 2019 22:15:04 +0200
parents 30eb99624cdd
children c7151df86441
files runtime/ftplugin/man.vim src/testdir/test_man.vim src/version.c
diffstat 3 files changed, 43 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/runtime/ftplugin/man.vim
+++ b/runtime/ftplugin/man.vim
@@ -1,7 +1,8 @@
 " Vim filetype plugin file
 " Language:	man
 " Maintainer:	SungHyun Nam <goweol@gmail.com>
-" 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 <SID>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 <SID>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
 
--- 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
--- 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,