changeset 11682:b9928ef8632f v8.0.0724

patch 8.0.0724: the message for yanking doesn't indicate the register commit https://github.com/vim/vim/commit/e45deb79978677cb41f1477ba4140bccff658fd1 Author: Bram Moolenaar <Bram@vim.org> Date: Sun Jul 16 17:56:16 2017 +0200 patch 8.0.0724: the message for yanking doesn't indicate the register Problem: The message for yanking doesn't indicate the register. Solution: Show the register name in the "N lines yanked" message. (Lemonboy, closes #1803, closes #1809)
author Christian Brabandt <cb@256bit.org>
date Sun, 16 Jul 2017 18:00:04 +0200
parents 26af18ef94c7
children 0cc8e85e29d4
files src/Makefile src/ops.c src/testdir/Make_all.mak src/testdir/test_registers.vim src/version.c
diffstat 5 files changed, 45 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/src/Makefile
+++ b/src/Makefile
@@ -2227,6 +2227,7 @@ test_arglist \
 	test_regex_char_classes \
 	test_regexp_latin \
 	test_regexp_utf8 \
+	test_registers \
 	test_reltime \
 	test_retab \
 	test_ruby \
--- a/src/ops.c
+++ b/src/ops.c
@@ -3167,19 +3167,29 @@ op_yank(oparg_T *oap, int deleting, int 
 	/* Some versions of Vi use ">=" here, some don't...  */
 	if (yanklines > p_report)
 	{
+	    char namebuf[100];
+
+	    if (oap->regname == NUL)
+		*namebuf = NUL;
+	    else
+		vim_snprintf(namebuf, sizeof(namebuf),
+						   " into \"%c", oap->regname);
+
 	    /* redisplay now, so message is not deleted */
 	    update_topline_redraw();
 	    if (yanklines == 1)
 	    {
 		if (oap->block_mode)
-		    MSG(_("block of 1 line yanked"));
+		    smsg((char_u *)_("block of 1 line yanked%s"), namebuf);
 		else
-		    MSG(_("1 line yanked"));
+		    smsg((char_u *)_("1 line yanked%s"), namebuf);
 	    }
 	    else if (oap->block_mode)
-		smsg((char_u *)_("block of %ld lines yanked"), yanklines);
+		smsg((char_u *)_("block of %ld lines yanked%s"),
+		     yanklines, namebuf);
 	    else
-		smsg((char_u *)_("%ld lines yanked"), yanklines);
+		smsg((char_u *)_("%ld lines yanked%s"), yanklines,
+		     namebuf);
 	}
     }
 
--- a/src/testdir/Make_all.mak
+++ b/src/testdir/Make_all.mak
@@ -184,6 +184,7 @@ NEW_TESTS = test_arabic.res \
 	    test_quickfix.res \
 	    test_quotestar.res \
 	    test_retab.res \
+	    test_registers.res \
 	    test_ruby.res \
 	    test_search.res \
 	    test_signs.res \
new file mode 100644
--- /dev/null
+++ b/src/testdir/test_registers.vim
@@ -0,0 +1,27 @@
+
+func Test_yank_shows_register()
+    enew
+    set report=0
+    call setline(1, ['foo', 'bar'])
+    " Line-wise
+    exe 'norm! yy'
+    call assert_equal('1 line yanked', v:statusmsg)
+    exe 'norm! "zyy'
+    call assert_equal('1 line yanked into "z', v:statusmsg)
+    exe 'norm! yj'
+    call assert_equal('2 lines yanked', v:statusmsg)
+    exe 'norm! "zyj'
+    call assert_equal('2 lines yanked into "z', v:statusmsg)
+
+    " Block-wise
+    exe "norm! \<C-V>y"
+    call assert_equal('block of 1 line yanked', v:statusmsg)
+    exe "norm! \<C-V>\"zy"
+    call assert_equal('block of 1 line yanked into "z', v:statusmsg)
+    exe "norm! \<C-V>jy"
+    call assert_equal('block of 2 lines yanked', v:statusmsg)
+    exe "norm! \<C-V>j\"zy"
+    call assert_equal('block of 2 lines yanked into "z', v:statusmsg)
+
+    bwipe!
+endfunc
--- a/src/version.c
+++ b/src/version.c
@@ -770,6 +770,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    724,
+/**/
     723,
 /**/
     722,