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:
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, {}))