From 55b0fb7001ae42a58c10ad93a9157113f77a43d2 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Mon, 13 Apr 2020 14:58:37 +0200 Subject: [PATCH] patch 8.2.0568: the man filetype plugin overwrites the unnamed register Problem: The man filetype plugin overwrites the unnamed register. Solution: Use the black hole register. (Jason Franklin) --- runtime/ftplugin/man.vim | 8 ++++---- src/testdir/test_man.vim | 20 ++++++++++++++++++++ src/version.c | 2 ++ 3 files changed, 26 insertions(+), 4 deletions(-) diff --git a/runtime/ftplugin/man.vim b/runtime/ftplugin/man.vim index 44efd4eb6..f627035eb 100644 --- a/runtime/ftplugin/man.vim +++ b/runtime/ftplugin/man.vim @@ -1,7 +1,7 @@ " Vim filetype plugin file " Language: man " Maintainer: SungHyun Nam -" 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 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 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 diff --git a/src/testdir/test_man.vim b/src/testdir/test_man.vim index 9de8cb474..083b1aefc 100644 --- a/src/testdir/test_man.vim +++ b/src/testdir/test_man.vim @@ -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 diff --git a/src/version.c b/src/version.c index d4250e598..5659e92fc 100644 --- a/src/version.c +++ b/src/version.c @@ -738,6 +738,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 568, /**/ 567, /**/ -- 2.40.0