forked from aniani/vim
patch 7.4.1513
Problem: "J" fails if there are not enough lines. (Christian Neukirchen) Solution: Reduce the count, only fail on the last line.
This commit is contained in:
17
src/normal.c
17
src/normal.c
@@ -9213,13 +9213,20 @@ nv_join(cmdarg_T *cap)
|
||||
cap->count0 = 2; /* default for join is two lines! */
|
||||
if (curwin->w_cursor.lnum + cap->count0 - 1 >
|
||||
curbuf->b_ml.ml_line_count)
|
||||
clearopbeep(cap->oap); /* beyond last line */
|
||||
else
|
||||
{
|
||||
prep_redo(cap->oap->regname, cap->count0,
|
||||
NUL, cap->cmdchar, NUL, NUL, cap->nchar);
|
||||
(void)do_join(cap->count0, cap->nchar == NUL, TRUE, TRUE, TRUE);
|
||||
/* can't join when on the last line */
|
||||
if (cap->count0 <= 2)
|
||||
{
|
||||
clearopbeep(cap->oap);
|
||||
return;
|
||||
}
|
||||
cap->count0 = curbuf->b_ml.ml_line_count
|
||||
- curwin->w_cursor.lnum + 1;
|
||||
}
|
||||
|
||||
prep_redo(cap->oap->regname, cap->count0,
|
||||
NUL, cap->cmdchar, NUL, NUL, cap->nchar);
|
||||
(void)do_join(cap->count0, cap->nchar == NUL, TRUE, TRUE, TRUE);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -6,6 +6,7 @@ source test_cursor_func.vim
|
||||
source test_delete.vim
|
||||
source test_expand.vim
|
||||
source test_glob2regpat.vim
|
||||
source test_join.vim
|
||||
source test_lispwords.vim
|
||||
source test_menu.vim
|
||||
source test_reltime.vim
|
||||
|
||||
13
src/testdir/test_join.vim
Normal file
13
src/testdir/test_join.vim
Normal file
@@ -0,0 +1,13 @@
|
||||
" Test for joining lines.
|
||||
|
||||
func Test_join_with_count()
|
||||
new
|
||||
call setline(1, ['one', 'two', 'three', 'four'])
|
||||
normal J
|
||||
call assert_equal('one two', getline(1))
|
||||
%del
|
||||
call setline(1, ['one', 'two', 'three', 'four'])
|
||||
normal 10J
|
||||
call assert_equal('one two three four', getline(1))
|
||||
quit!
|
||||
endfunc
|
||||
@@ -743,6 +743,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
1513,
|
||||
/**/
|
||||
1512,
|
||||
/**/
|
||||
|
||||
Reference in New Issue
Block a user