aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJurica Bradaric <jbradaric@gmail.com>2016-05-14 23:11:17 +0200
committerJurica Bradaric <jbradaric@gmail.com>2016-05-15 22:42:17 +0200
commitd81556513da96d7f858c6be42808a78fab6cc2c0 (patch)
tree47ae5a0c3cec6b5f3b6e9f81a64e9ba96bb7466f /src
parent8cdf908ddba3038bd38fe144214b2792e7388b66 (diff)
downloadrneovim-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.c26
-rw-r--r--src/nvim/version.c2
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