diff options
author | Florian Walch <florian@fwalch.com> | 2014-12-23 13:06:39 +0100 |
---|---|---|
committer | Florian Walch <florian@fwalch.com> | 2015-01-04 11:55:38 +0100 |
commit | 1cf933e7befffb4077ef14f2f87a9ed9eecdd625 (patch) | |
tree | 6448eab136ea8cdcdb7816d1c1dd819f8b96b4c0 /src/nvim/diff.c | |
parent | 10ff6ee0d7efedc4e3812b39dc8327b8aeef57a7 (diff) | |
download | rneovim-1cf933e7befffb4077ef14f2f87a9ed9eecdd625.tar.gz rneovim-1cf933e7befffb4077ef14f2f87a9ed9eecdd625.tar.bz2 rneovim-1cf933e7befffb4077ef14f2f87a9ed9eecdd625.zip |
vim-patch: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)
https://code.google.com/p/vim/source/detail?r=v7-4-490
Diffstat (limited to 'src/nvim/diff.c')
-rw-r--r-- | src/nvim/diff.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/src/nvim/diff.c b/src/nvim/diff.c index 7e31c3f216..ccff4520dc 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; |