neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

commit 1cf51a07a6bfb827efc36911cd018da3a3cb863b
parent 80f75d063d2fd2fabf0584a0167920af647f6e9e
Author: zeertzjq <zeertzjq@outlook.com>
Date:   Tue, 19 Dec 2023 08:01:05 +0800

fix(api): don't set coladd of mark (#26648)


Diffstat:
Msrc/nvim/api/private/helpers.c | 2+-
Mtest/functional/api/buffer_spec.lua | 6++++--
2 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/src/nvim/api/private/helpers.c b/src/nvim/api/private/helpers.c @@ -1044,7 +1044,7 @@ bool set_mark(buf_T *buf, String name, Integer line, Integer col, Error *err) } } assert(INT32_MIN <= line && line <= INT32_MAX); - pos_T pos = { (linenr_T)line, (int)col, (int)col }; + pos_T pos = { (linenr_T)line, (int)col, 0 }; res = setmark_pos(*name.data, &pos, buf->handle, NULL); if (!res) { if (deleting) { diff --git a/test/functional/api/buffer_spec.lua b/test/functional/api/buffer_spec.lua @@ -1990,11 +1990,13 @@ describe('api/buf', function() curbufmeths.set_lines(-1, -1, true, {'a', 'bit of', 'text'}) eq(true, curbufmeths.set_mark('z', 1, 1, {})) eq({1, 1}, curbufmeths.get_mark('z')) + eq({0, 1, 2, 0}, funcs.getpos("'z")) end) it('works with file/uppercase marks', function() curbufmeths.set_lines(-1, -1, true, {'a', 'bit of', 'text'}) - eq(true, curbufmeths.set_mark('Z', 3, 1, {})) - eq({3, 1}, curbufmeths.get_mark('Z')) + eq(true, curbufmeths.set_mark('Z', 3, 2, {})) + eq({3, 2}, curbufmeths.get_mark('Z')) + eq({curbuf().id, 3, 3, 0}, funcs.getpos("'Z")) end) it('fails when invalid marks names are used', function() eq(false, pcall(curbufmeths.set_mark, '!', 1, 0, {}))