Mercurial > vim
changeset 30341:65c69861bad0 v9.0.0506
patch 9.0.0506: line number argument for :badd does not work
Commit: https://github.com/vim/vim/commit/a2b91036d12e1b406ed5d17bf03f8d1ed05221f6
Author: Bram Moolenaar <Bram@vim.org>
Date: Mon Sep 19 18:20:08 2022 +0100
patch 9.0.0506: line number argument for :badd does not work
Problem: Line number argument for :badd does not work.
Solution: Set the last cursor position in the new buffer. (closes https://github.com/vim/vim/issues/11161)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Mon, 19 Sep 2022 19:30:03 +0200 |
parents | 8740fb5cd365 |
children | 930fed9ccf0d |
files | src/ex_cmds.c src/testdir/test_buffer.vim src/version.c |
diffstat | 3 files changed, 16 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/ex_cmds.c +++ b/src/ex_cmds.c @@ -2651,8 +2651,13 @@ do_ecmd( // with the current window. newbuf = buflist_new(ffname, sfname, tlnum, BLN_LISTED | BLN_NOCURWIN); - if (newbuf != NULL && (flags & ECMD_ALTBUF)) - curwin->w_alt_fnum = newbuf->b_fnum; + if (newbuf != NULL) + { + if (flags & ECMD_ALTBUF) + curwin->w_alt_fnum = newbuf->b_fnum; + if (tlnum > 0) + newbuf->b_last_cursor.lnum = tlnum; + } goto theend; } buf = buflist_new(ffname, sfname, 0L,
--- a/src/testdir/test_buffer.vim +++ b/src/testdir/test_buffer.vim @@ -361,6 +361,13 @@ func Test_badd_options() close close bwipe! SomeNewBuffer + + badd +3 XbaddFile + call writefile(range(6), 'XbaddFile', 'D') + buf XbaddFile + call assert_equal([0, 3, 1, 0], getpos('.')) + + bwipe! XbaddFile endfunc func Test_balt()