Merge pull request #4759 from jbradaric/vim-7.4.1513

vim-patch:7.4.1513
This commit is contained in:
Justin M. Keyes
2016-05-17 02:35:12 -04:00
3 changed files with 38 additions and 12 deletions

View File

@@ -7648,19 +7648,25 @@ static void nv_halfpage(cmdarg_T *cap)
*/ */
static void nv_join(cmdarg_T *cap) static void nv_join(cmdarg_T *cap)
{ {
if (VIsual_active) /* join the visual lines */ if (VIsual_active) { // join the visual lines
nv_operator(cap); nv_operator(cap);
else if (!checkclearop(cap->oap)) { } else if (!checkclearop(cap->oap)) {
if (cap->count0 <= 1) if (cap->count0 <= 1) {
cap->count0 = 2; /* default for join is two lines! */ 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);
do_join(cap->count0, cap->nchar == NUL, true, true, true);
} }
if (curwin->w_cursor.lnum + cap->count0 - 1 >
curbuf->b_ml.ml_line_count) {
// 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);
do_join(cap->count0, cap->nchar == NUL, true, true, true);
} }
} }

View File

@@ -170,7 +170,7 @@ static int included_patches[] = {
// 1516, // 1516,
// 1515 NA // 1515 NA
// 1514 NA // 1514 NA
// 1513, 1513,
// 1512 NA // 1512 NA
1511, 1511,
// 1510 NA // 1510 NA

View File

@@ -0,0 +1,20 @@
-- Test for joining lines
local helpers = require('test.functional.helpers')
local clear, eq = helpers.clear, helpers.eq
local eval, execute = helpers.eval, helpers.execute
describe('joining lines', function()
before_each(clear)
it('is working', function()
execute('new')
execute([[call setline(1, ['one', 'two', 'three', 'four'])]])
execute('normal J')
eq('one two', eval('getline(1)'))
execute('%del')
execute([[call setline(1, ['one', 'two', 'three', 'four'])]])
execute('normal 10J')
eq('one two three four', eval('getline(1)'))
end)
end)