Mercurial > vim
changeset 6314:df92c2b2a179 v7.4.490
updated for version 7.4.490
Problem: Cannot specify the buffer to use for "do" and "dp", making them
useless for three-way diff.
Solution: Use the count as the buffer number. (James McCoy)
author | Bram Moolenaar <bram@vim.org> |
---|---|
date | Fri, 31 Oct 2014 13:54:25 +0100 |
parents | 8b928b7530d4 |
children | f1d8e0778d1b |
files | src/diff.c src/normal.c src/proto/diff.pro src/version.c |
diffstat | 4 files changed, 15 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/src/diff.c +++ b/src/diff.c @@ -2107,12 +2107,20 @@ diff_infold(wp, lnum) * "dp" and "do" commands. */ void -nv_diffgetput(put) +nv_diffgetput(put, count) int put; + long count; { exarg_T ea; + char_u buf[30]; - ea.arg = (char_u *)""; + if (count == 0) + ea.arg = (char_u *)""; + else + { + vim_snprintf((char *)buf, 30, "%ld", count); + ea.arg = buf; + } if (put) ea.cmdidx = CMD_diffput; else
--- a/src/normal.c +++ b/src/normal.c @@ -9284,7 +9284,7 @@ nv_put(cap) if (cap->oap->op_type == OP_DELETE && cap->cmdchar == 'p') { clearop(cap->oap); - nv_diffgetput(TRUE); + nv_diffgetput(TRUE, cap->opcount); } else #endif @@ -9407,7 +9407,7 @@ nv_open(cap) if (cap->oap->op_type == OP_DELETE && cap->cmdchar == 'o') { clearop(cap->oap); - nv_diffgetput(FALSE); + nv_diffgetput(FALSE, cap->opcount); } else #endif
--- a/src/proto/diff.pro +++ b/src/proto/diff.pro @@ -18,7 +18,7 @@ int diffopt_changed __ARGS((void)); int diffopt_horizontal __ARGS((void)); int diff_find_change __ARGS((win_T *wp, linenr_T lnum, int *startp, int *endp)); int diff_infold __ARGS((win_T *wp, linenr_T lnum)); -void nv_diffgetput __ARGS((int put)); +void nv_diffgetput __ARGS((int put, long count)); void ex_diffgetput __ARGS((exarg_T *eap)); int diff_mode_buf __ARGS((buf_T *buf)); int diff_move_to __ARGS((int dir, long count));