changeset 22069:87502e318c19 v8.2.1584

patch 8.2.1584: Vim9: cannot use "true" for "skipstart" in prop_find() Commit: https://github.com/vim/vim/commit/eb24556df3b16a19009ee3ddee8ae94dc058a3b2 Author: Bram Moolenaar <Bram@vim.org> Date: Thu Sep 3 22:33:44 2020 +0200 patch 8.2.1584: Vim9: cannot use "true" for "skipstart" in prop_find() Problem: Vim9: cannot use "true" for "skipstart" in prop_find(). Solution: Use dict_get_bool() instead of tv_get_number(). (closes https://github.com/vim/vim/issues/6852)
author Bram Moolenaar <Bram@vim.org>
date Thu, 03 Sep 2020 22:45:06 +0200
parents 79aa6e93bcab
children ebd78535192f
files src/testdir/test_textprop.vim src/textprop.c src/version.c
diffstat 3 files changed, 18 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- a/src/testdir/test_textprop.vim
+++ b/src/testdir/test_textprop.vim
@@ -212,22 +212,27 @@ func Test_prop_find()
   call prop_clear(1,6)
   call prop_type_delete('prop_name')
 
-  " Multiple props per line, start on the first, should find the second.
-  let expected = {'lnum': 1, 'id': 0, 'col': 14, 'end': 1, 'type': 'misspell', 'length': 2, 'start': 1}
-  eval ['the quikc bronw fox jumsp over the layz dog']->repeat(2)->setline(1)
-  call prop_type_add('misspell', #{highlight: 'ErrorMsg'})
+  bwipe!
+endfunc
+
+def Test_prop_find2()
+  # Multiple props per line, start on the first, should find the second.
+  new
+  ['the quikc bronw fox jumsp over the layz dog']->repeat(2)->setline(1)
+  prop_type_add('misspell', #{highlight: 'ErrorMsg'})
   for lnum in [1, 2]
     for col in [8, 14, 24, 38]
-      call prop_add(lnum, col, #{type: 'misspell', length: 2})
+      prop_add(lnum, col, #{type: 'misspell', length: 2})
     endfor
   endfor
-  call cursor(1, 8)
-  let result = prop_find(#{type: 'misspell', skipstart: 1}, 'f')
-  call assert_equal(expected, result)
+  cursor(1, 8)
+  let expected = {'lnum': 1, 'id': 0, 'col': 14, 'end': 1, 'type': 'misspell', 'length': 2, 'start': 1}
+  let result = prop_find(#{type: 'misspell', skipstart: true}, 'f')
+  assert_equal(expected, result)
 
-  call prop_type_delete('misspell')
+  prop_type_delete('misspell')
   bwipe!
-endfunc
+enddef
 
 func Test_prop_find_smaller_len_than_match_col()
   new
--- a/src/textprop.c
+++ b/src/textprop.c
@@ -645,9 +645,7 @@ f_prop_find(typval_T *argvars, typval_T 
 	return;
     }
 
-    di = dict_find(dict, (char_u *)"skipstart", -1);
-    if (di != NULL)
-	skipstart = tv_get_number(&di->di_tv);
+    skipstart = dict_get_bool(dict, (char_u *)"skipstart", 0);
 
     if (dict_find(dict, (char_u *)"id", -1) != NULL)
 	id = dict_get_number(dict, (char_u *)"id");
--- a/src/version.c
+++ b/src/version.c
@@ -755,6 +755,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1584,
+/**/
     1583,
 /**/
     1582,