aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/nvim/diff.c15
-rw-r--r--src/nvim/normal.c6
-rw-r--r--src/nvim/version.c2
3 files changed, 16 insertions, 7 deletions
diff --git a/src/nvim/diff.c b/src/nvim/diff.c
index 6cc75e948c..b8fa3c24a2 100644
--- a/src/nvim/diff.c
+++ b/src/nvim/diff.c
@@ -2017,17 +2017,24 @@ int diff_infold(win_T *wp, linenr_T lnum)
}
/// "dp" and "do" commands.
-///
-/// @param put
-void nv_diffgetput(int put)
+void nv_diffgetput(bool put, size_t count)
{
exarg_T ea;
- ea.arg = (char_u *)"";
+ char buf[30];
+
+ if (count == 0) {
+ ea.arg = (char_u *)"";
+ } else {
+ vim_snprintf(buf, 30, "%zu", count);
+ ea.arg = (char_u *)buf;
+ }
+
if (put) {
ea.cmdidx = CMD_diffput;
} else {
ea.cmdidx = CMD_diffget;
}
+
ea.addr_count = 0;
ea.line1 = curwin->w_cursor.lnum;
ea.line2 = curwin->w_cursor.lnum;
diff --git a/src/nvim/normal.c b/src/nvim/normal.c
index e1aed23e8c..5b138f2d88 100644
--- a/src/nvim/normal.c
+++ b/src/nvim/normal.c
@@ -7248,7 +7248,8 @@ static void nv_put(cmdarg_T *cap)
/* "dp" is ":diffput" */
if (cap->oap->op_type == OP_DELETE && cap->cmdchar == 'p') {
clearop(cap->oap);
- nv_diffgetput(true);
+ assert(cap->opcount >= 0);
+ nv_diffgetput(true, (size_t)cap->opcount);
} else
clearopbeep(cap->oap);
} else {
@@ -7350,7 +7351,8 @@ static void nv_open(cmdarg_T *cap)
/* "do" is ":diffget" */
if (cap->oap->op_type == OP_DELETE && cap->cmdchar == 'o') {
clearop(cap->oap);
- nv_diffgetput(false);
+ assert(cap->opcount >= 0);
+ nv_diffgetput(false, (size_t)cap->opcount);
} else if (VIsual_active) /* switch start and end of visual */
v_swap_corners(cap->cmdchar);
else
diff --git a/src/nvim/version.c b/src/nvim/version.c
index 3e214bfd30..e34db7f40a 100644
--- a/src/nvim/version.c
+++ b/src/nvim/version.c
@@ -255,7 +255,7 @@ static int included_patches[] = {
493,
//492,
491,
- //490,
+ 490,
489,
488,
487,