diff options
author | Bram Moolenaar <Bram@vim.org> | 2022-09-19 18:20:08 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2022-09-19 18:20:08 +0100 |
commit | a2b91036d12e1b406ed5d17bf03f8d1ed05221f6 (patch) | |
tree | d14bd92d1fe7e688651c01ae175c1c623607a98f | |
parent | faf1d412f5e3665021500b528c0e7301eb02bf0b (diff) | |
download | vim-git-a2b91036d12e1b406ed5d17bf03f8d1ed05221f6.tar.gz |
patch 9.0.0506: line number argument for :badd does not workv9.0.0506
Problem: Line number argument for :badd does not work.
Solution: Set the last cursor position in the new buffer. (closes #11161)
-rw-r--r-- | src/ex_cmds.c | 9 | ||||
-rw-r--r-- | src/testdir/test_buffer.vim | 7 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 16 insertions, 2 deletions
diff --git a/src/ex_cmds.c b/src/ex_cmds.c index 9fdbe955e..265927c4c 100644 --- 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, diff --git a/src/testdir/test_buffer.vim b/src/testdir/test_buffer.vim index 9387b5f6c..bc29c2162 100644 --- 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() diff --git a/src/version.c b/src/version.c index 9de067617..15f5e3854 100644 --- a/src/version.c +++ b/src/version.c @@ -700,6 +700,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 506, +/**/ 505, /**/ 504, |