summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/testdir/test_textprop.vim9
-rw-r--r--src/textprop.c13
-rw-r--r--src/version.c2
3 files changed, 16 insertions, 8 deletions
diff --git a/src/testdir/test_textprop.vim b/src/testdir/test_textprop.vim
index 012b3ebf8..f7718124b 100644
--- a/src/testdir/test_textprop.vim
+++ b/src/testdir/test_textprop.vim
@@ -321,6 +321,15 @@ func Test_prop_remove()
bwipe!
endfunc
+def Test_prop_remove_vim9()
+ new
+ call AddPropTypes()
+ call SetupPropsInFirstLine()
+ call assert_equal(1, prop_remove({'type': 'three', 'id': 13, 'both': true, 'all': true}))
+ call DeletePropTypes()
+ bwipe!
+enddef
+
func SetupOneLine()
call setline(1, 'xonex xtwoxx')
normal gg0
diff --git a/src/textprop.c b/src/textprop.c
index beb9a273d..c291a295f 100644
--- a/src/textprop.c
+++ b/src/textprop.c
@@ -805,11 +805,10 @@ f_prop_remove(typval_T *argvars, typval_T *rettv)
linenr_T lnum;
dict_T *dict;
buf_T *buf = curbuf;
- dictitem_T *di;
- int do_all = FALSE;
+ int do_all;
int id = -1;
int type_id = -1;
- int both = FALSE;
+ int both;
rettv->vval.v_number = 0;
if (argvars[0].v_type != VAR_DICT || argvars[0].vval.v_dict == NULL)
@@ -837,9 +836,7 @@ f_prop_remove(typval_T *argvars, typval_T *rettv)
if (buf->b_ml.ml_mfp == NULL)
return;
- di = dict_find(dict, (char_u*)"all", -1);
- if (di != NULL)
- do_all = dict_get_number(dict, (char_u *)"all");
+ do_all = dict_get_bool(dict, (char_u *)"all", FALSE);
if (dict_find(dict, (char_u *)"id", -1) != NULL)
id = dict_get_number(dict, (char_u *)"id");
@@ -852,8 +849,8 @@ f_prop_remove(typval_T *argvars, typval_T *rettv)
return;
type_id = type->pt_id;
}
- if (dict_find(dict, (char_u *)"both", -1) != NULL)
- both = dict_get_number(dict, (char_u *)"both");
+ both = dict_get_bool(dict, (char_u *)"both", FALSE);
+
if (id == -1 && type_id == -1)
{
emsg(_("E968: Need at least one of 'id' or 'type'"));
diff --git a/src/version.c b/src/version.c
index bcece94d5..34516ac76 100644
--- 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 */
/**/
+ 1612,
+/**/
1611,
/**/
1610,