Mercurial > vim
changeset 20635:3e36a51ff152 v8.2.0871
patch 8.2.0871: cannot use getmarklist() as a method
Commit: https://github.com/vim/vim/commit/f17e7ea67a798d0aa45ce24ea80c9e21d5164326
Author: Bram Moolenaar <Bram@vim.org>
Date: Mon Jun 1 14:14:44 2020 +0200
patch 8.2.0871: cannot use getmarklist() as a method
Problem: Cannot use getmarklist() as a method.
Solution: Make getmarklist() work as a method. Add one to the column
number to match getpos(). (Yegappan Lakshmanan, closes #6176)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Mon, 01 Jun 2020 14:15:05 +0200 |
parents | 524fb8e122ba |
children | 7226685d849a |
files | runtime/doc/eval.txt src/evalfunc.c src/mark.c src/testdir/test_marks.vim src/version.c |
diffstat | 5 files changed, 13 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/runtime/doc/eval.txt +++ b/runtime/doc/eval.txt @@ -5385,6 +5385,8 @@ getmarklist([{expr}] *getmarklist()* Refer to |getpos()| for getting information about a specific mark. + Can also be used as a |method|: > + GetBufnr()->getmarklist() getmatches([{win}]) *getmatches()* Returns a |List| with all matches previously defined for the
--- a/src/evalfunc.c +++ b/src/evalfunc.c @@ -579,7 +579,7 @@ static funcentry_T global_functions[] = {"getjumplist", 0, 2, FEARG_1, ret_list_any, f_getjumplist}, {"getline", 1, 2, FEARG_1, ret_f_getline, f_getline}, {"getloclist", 1, 2, 0, ret_list_dict_any, f_getloclist}, - {"getmarklist", 0, 1, 0, ret_list_dict_any, f_getmarklist}, + {"getmarklist", 0, 1, FEARG_1, ret_list_dict_any, f_getmarklist}, {"getmatches", 0, 1, 0, ret_list_dict_any, f_getmatches}, {"getmousepos", 0, 0, 0, ret_dict_number, f_getmousepos}, {"getpid", 0, 0, 0, ret_number, f_getpid},
--- a/src/mark.c +++ b/src/mark.c @@ -1442,7 +1442,7 @@ add_mark(list_T *l, char_u *mname, pos_T list_append_number(lpos, bufnr); list_append_number(lpos, pos->lnum); - list_append_number(lpos, pos->col); + list_append_number(lpos, pos->col + 1); list_append_number(lpos, pos->coladd); if (dict_add_string(d, "mark", mname) == FAIL
--- a/src/testdir/test_marks.vim +++ b/src/testdir/test_marks.vim @@ -269,18 +269,18 @@ func Test_getmarklist() mark A call cursor(3, 5) normal mN - call assert_equal([{'file' : '', 'mark' : "'A", 'pos' : [bufnr(), 1, 0, 0]}, - \ {'file' : '', 'mark' : "'N", 'pos' : [bufnr(), 3, 4, 0]}], + call assert_equal([{'file' : '', 'mark' : "'A", 'pos' : [bufnr(), 1, 1, 0]}, + \ {'file' : '', 'mark' : "'N", 'pos' : [bufnr(), 3, 5, 0]}], \ getmarklist()) " buffer local marks delmarks! - call assert_equal([{'mark' : "''", 'pos' : [bufnr(), 1, 0, 0]}, - \ {'mark' : "'\"", 'pos' : [bufnr(), 1, 0, 0]}], getmarklist(bufnr())) + call assert_equal([{'mark' : "''", 'pos' : [bufnr(), 1, 1, 0]}, + \ {'mark' : "'\"", 'pos' : [bufnr(), 1, 1, 0]}], getmarklist(bufnr())) call cursor(2, 2) normal mr - call assert_equal({'mark' : "'r", 'pos' : [bufnr(), 2, 1, 0]}, - \ getmarklist(bufnr())[0]) - call assert_equal([], getmarklist({})) + call assert_equal({'mark' : "'r", 'pos' : [bufnr(), 2, 2, 0]}, + \ bufnr()->getmarklist()[0]) + call assert_equal([], {}->getmarklist()) close! endfunc