Skip to content

Commit

Permalink
patch 8.0.0724: the message for yanking doesn't indicate the register
Browse files Browse the repository at this point in the history
Problem:    The message for yanking doesn't indicate the register.
Solution:   Show the register name in the "N lines yanked" message. (Lemonboy,
            closes vim#1803, closes vim#1809)
  • Loading branch information
brammool committed Jul 16, 2017
1 parent 9b50bba commit e45deb7
Show file tree
Hide file tree
Showing 5 changed files with 45 additions and 4 deletions.
1 change: 1 addition & 0 deletions src/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -2227,6 +2227,7 @@ test_arglist \
test_regex_char_classes \
test_regexp_latin \
test_regexp_utf8 \
test_registers \
test_reltime \
test_retab \
test_ruby \
Expand Down
18 changes: 14 additions & 4 deletions src/ops.c
Original file line number Diff line number Diff line change
Expand Up @@ -3167,19 +3167,29 @@ op_yank(oparg_T *oap, int deleting, int mess)
/* 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);
}
}

Expand Down
1 change: 1 addition & 0 deletions src/testdir/Make_all.mak
Original file line number Diff line number Diff line change
Expand Up @@ -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 \
Expand Down
27 changes: 27 additions & 0 deletions src/testdir/test_registers.vim
Original file line number Diff line number Diff line change
@@ -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
2 changes: 2 additions & 0 deletions src/version.c
Original file line number Diff line number Diff line change
Expand Up @@ -769,6 +769,8 @@ static char *(features[]) =

static int included_patches[] =
{ /* Add new patch number below this line */
/**/
724,
/**/
723,
/**/
Expand Down

0 comments on commit e45deb7

Please sign in to comment.