]> granicus.if.org Git - vim/commitdiff
patch 8.2.0568: the man filetype plugin overwrites the unnamed register v8.2.0568
authorBram Moolenaar <Bram@vim.org>
Mon, 13 Apr 2020 12:58:37 +0000 (14:58 +0200)
committerBram Moolenaar <Bram@vim.org>
Mon, 13 Apr 2020 12:58:37 +0000 (14:58 +0200)
Problem:    The man filetype plugin overwrites the unnamed register.
Solution:   Use the black hole register. (Jason Franklin)

runtime/ftplugin/man.vim
src/testdir/test_man.vim
src/version.c

index 44efd4eb65614c9f1d1f233dd3057bcb124b8059..f627035eb266aa148033f22b5ddc9ea45974a819 100644 (file)
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:    man
 " Maintainer:  SungHyun Nam <goweol@gmail.com>
-" Last Change:         2020 Apr 6
+" Last Change:         2020 Apr 13
 
 " To make the ":Man" command available before editing a manual page, source
 " this script from your startup vimrc file.
@@ -188,7 +188,7 @@ func <SID>GetPage(cmdmods, ...)
   setl buftype=nofile noswapfile
 
   setl fdc=0 ma nofen nonu nornu
-  silent exec "norm! 1GdG"
+  %delete _
   let unsetwidth = 0
   if empty($MANWIDTH)
     let $MANWIDTH = winwidth(0)
@@ -213,10 +213,10 @@ func <SID>GetPage(cmdmods, ...)
   endif
   " Remove blank lines from top and bottom.
   while line('$') > 1 && getline(1) =~ '^\s*$'
-    silent keepj norm! ggdd
+    1delete _
   endwhile
   while line('$') > 1 && getline('$') =~ '^\s*$'
-    silent keepj norm! Gdd
+    $delete _
   endwhile
   1
   setl ft=man nomod
index 9de8cb474aaded6f1e8eef7ce6493d9773d6dc3a..083b1aefc6e12e203294862ffa10c2f314bc0b4f 100644 (file)
@@ -1,3 +1,5 @@
+" Test specifically for the Man filetype plugin.
+
 runtime ftplugin/man.vim
 
 func Test_g_ft_man_open_mode()
@@ -111,3 +113,21 @@ func Test_local_options()
   %bw!
   set foldcolumn& number&
 endfunc
+
+" Check that the unnamed register is not overwritten.
+func Test_keep_unnamed_register()
+  %bw!
+
+  let @" = '---'
+
+  let wincnt = winnr('$')
+  Man vim
+  if wincnt == winnr('$')
+    " Vim manual page cannot be found.
+    return
+  endif
+
+  call assert_equal('---', @")
+
+  %bw!
+endfunc
index d4250e598d61d3d2034d4a68e84bff4a7e5c58c9..5659e92fca0dd388928498d8cf0252daefb8f0d1 100644 (file)
@@ -738,6 +738,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    568,
 /**/
     567,
 /**/