changeset 25471:3678a11e71fa v8.2.3272

patch 8.2.3272: cannot use id zero with prop_find() Commit: https://github.com/vim/vim/commit/e041dde7bb9157644fa5135a252c84924b9ea433 Author: Bram Moolenaar <Bram@vim.org> Date: Sun Aug 1 21:30:12 2021 +0200 patch 8.2.3272: cannot use id zero with prop_find() Problem: Cannot use id zero with prop_find(). (Naohiro Ono) Solution: Also accept id zero.
author Bram Moolenaar <Bram@vim.org>
date Sun, 01 Aug 2021 21:45:03 +0200
parents 85b99764bb66
children 5bf9ba95400f
files src/testdir/test_textprop.vim src/textprop.c src/version.c
diffstat 3 files changed, 12 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/src/testdir/test_textprop.vim
+++ b/src/testdir/test_textprop.vim
@@ -239,12 +239,18 @@ func Test_prop_find()
   let result = prop_find({'type': 'prop_name', 'lnum': 1}, 'f')
   call assert_equal(expected[0], result)
 
-  " When ID is -1 it's like prop is not found.
+  " Negative ID is possible, just like prop is not found.
   call assert_equal({}, prop_find({'id': -1}))
+  call assert_equal({}, prop_find({'id': -2}))
+
+  call prop_clear(1, 6)
 
-  call prop_clear(1,6)
+  " Default ID is zero
+  call prop_add(5, 4, {'type': 'prop_name', 'length': 1})
+  call assert_equal(#{lnum: 5, id: 0, col: 4, type_bufnr: 0, end: 1, type: 'prop_name', length: 1, start: 1}, prop_find({'id': 0}))
+
   call prop_type_delete('prop_name')
-
+  call prop_clear(1, 6)
   bwipe!
 endfunc
 
--- a/src/textprop.c
+++ b/src/textprop.c
@@ -689,7 +689,7 @@ f_prop_find(typval_T *argvars, typval_T 
     if (dict_find(dict, (char_u *)"id", -1) != NULL)
     {
 	id = dict_get_number(dict, (char_u *)"id");
-	id_found = id != 0;
+	id_found = TRUE;
     }
     if (dict_find(dict, (char_u *)"type", -1))
     {
--- a/src/version.c
+++ b/src/version.c
@@ -756,6 +756,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    3272,
+/**/
     3271,
 /**/
     3270,