]> granicus.if.org Git - vim/commitdiff
patch 8.2.0871: cannot use getmarklist() as a method v8.2.0871
authorBram Moolenaar <Bram@vim.org>
Mon, 1 Jun 2020 12:14:44 +0000 (14:14 +0200)
committerBram Moolenaar <Bram@vim.org>
Mon, 1 Jun 2020 12:14:44 +0000 (14:14 +0200)
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)

runtime/doc/eval.txt
src/evalfunc.c
src/mark.c
src/testdir/test_marks.vim
src/version.c

index fb0b2a7896743c0eaf6ca6ad5cf740cdb7d3bcf7..7582a272408986d55a7a113159607f6f90bdcad4 100644 (file)
@@ -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
index 92d6c066714059e910e7ef61a3ac2b78af48906c..92cd4a44f7392018f2cd39237051c1a79dece466 100644 (file)
@@ -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},
index ca64c90e14b8b0de571b9f0cee1454718982eb5e..298da67e8478a8a5ce91c641f43304194fef58b1 100644 (file)
@@ -1442,7 +1442,7 @@ add_mark(list_T *l, char_u *mname, pos_T *pos, int bufnr, char_u *fname)
 
     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
index ffd50a12ca3c702950f7ea56c1171f837c8e5067..e4ab562fd62ade6b497e1db875376f4bc0f6a0bc 100644 (file)
@@ -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
 
index e51e65021f17ca2576a6ff5d134187df9dcddfa7..7138ac5257163cba1292ebd387a8c4784aa50004 100644 (file)
@@ -746,6 +746,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    871,
 /**/
     870,
 /**/