diff options
author | Jurica Bradaric <jbradaric@gmail.com> | 2016-05-14 23:11:17 +0200 |
---|---|---|
committer | Jurica Bradaric <jbradaric@gmail.com> | 2016-05-15 22:42:17 +0200 |
commit | d81556513da96d7f858c6be42808a78fab6cc2c0 (patch) | |
tree | 47ae5a0c3cec6b5f3b6e9f81a64e9ba96bb7466f /src | |
parent | 8cdf908ddba3038bd38fe144214b2792e7388b66 (diff) | |
download | rneovim-d81556513da96d7f858c6be42808a78fab6cc2c0.tar.gz rneovim-d81556513da96d7f858c6be42808a78fab6cc2c0.tar.bz2 rneovim-d81556513da96d7f858c6be42808a78fab6cc2c0.zip |
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.
https://github.com/vim/vim/commit/41e0f2f48f541eb2c8eb5620d3f1d270eb979154
Diffstat (limited to 'src')
-rw-r--r-- | src/nvim/normal.c | 26 | ||||
-rw-r--r-- | src/nvim/version.c | 2 |
2 files changed, 17 insertions, 11 deletions
diff --git a/src/nvim/normal.c b/src/nvim/normal.c index f5607f3676..382c4943ff 100644 --- a/src/nvim/normal.c +++ b/src/nvim/normal.c @@ -7648,19 +7648,25 @@ static void nv_halfpage(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); - else if (!checkclearop(cap->oap)) { - if (cap->count0 <= 1) - cap->count0 = 2; /* default for join is two lines! */ + } else if (!checkclearop(cap->oap)) { + if (cap->count0 <= 1) { + 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); + 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); } } diff --git a/src/nvim/version.c b/src/nvim/version.c index 506bb1e3cf..d7eae84c1b 100644 --- a/src/nvim/version.c +++ b/src/nvim/version.c @@ -169,7 +169,7 @@ static int included_patches[] = { // 1516, // 1515 NA // 1514 NA - // 1513, + 1513, // 1512 NA 1511, // 1510 NA |