summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/channel.c5
-rw-r--r--src/dict.c13
-rw-r--r--src/evalwindow.c16
-rw-r--r--src/filepath.c2
-rw-r--r--src/highlight.c14
-rw-r--r--src/json.c4
-rw-r--r--src/match.c16
-rw-r--r--src/popupwin.c2
-rw-r--r--src/proto/dict.pro1
-rw-r--r--src/quickfix.c28
-rw-r--r--src/search.c2
-rw-r--r--src/sign.c2
-rw-r--r--src/tag.c2
-rw-r--r--src/terminal.c8
-rw-r--r--src/testing.c38
-rw-r--r--src/textprop.c22
-rw-r--r--src/time.c2
-rw-r--r--src/version.c2
18 files changed, 95 insertions, 84 deletions
diff --git a/src/channel.c b/src/channel.c
index 470092e15..66ba55df6 100644
--- a/src/channel.c
+++ b/src/channel.c
@@ -4460,8 +4460,7 @@ ch_expr_common(typval_T *argvars, typval_T *rettv, int eval)
}
if (argvars[2].v_type == VAR_DICT)
- if (dict_find(argvars[2].vval.v_dict, (char_u *)"callback", -1)
- != NULL)
+ if (dict_has_key(argvars[2].vval.v_dict, "callback"))
callback_present = TRUE;
if (eval || callback_present)
@@ -4482,7 +4481,7 @@ ch_expr_common(typval_T *argvars, typval_T *rettv, int eval)
if (di != NULL)
id = di->di_tv.vval.v_number;
}
- if (dict_find(d, (char_u *)"jsonrpc", -1) == NULL)
+ if (!dict_has_key(d, "jsonrpc"))
dict_add_string(d, "jsonrpc", (char_u *)"2.0");
text = json_encode_lsp_msg(&argvars[1]);
}
diff --git a/src/dict.c b/src/dict.c
index c2dc6a7c2..88cc4b3fc 100644
--- a/src/dict.c
+++ b/src/dict.c
@@ -649,6 +649,15 @@ dict_find(dict_T *d, char_u *key, int len)
}
/*
+ * Returns TRUE if "key" is present in Dictionary "d".
+ */
+ int
+dict_has_key(dict_T *d, char *key)
+{
+ return dict_find(d, (char_u *)key, -1) != NULL;
+}
+
+/*
* Get a typval_T item from a dictionary and copy it into "rettv".
* Returns FAIL if the entry doesn't exist or out of memory.
*/
@@ -1582,8 +1591,8 @@ f_has_key(typval_T *argvars, typval_T *rettv)
if (argvars[0].vval.v_dict == NULL)
return;
- rettv->vval.v_number = dict_find(argvars[0].vval.v_dict,
- tv_get_string(&argvars[1]), -1) != NULL;
+ rettv->vval.v_number = dict_has_key(argvars[0].vval.v_dict,
+ (char *)tv_get_string(&argvars[1]));
}
#endif // defined(FEAT_EVAL)
diff --git a/src/evalwindow.c b/src/evalwindow.c
index a47a0c047..f6bc79f9e 100644
--- a/src/evalwindow.c
+++ b/src/evalwindow.c
@@ -1220,27 +1220,27 @@ f_winrestview(typval_T *argvars, typval_T *rettv UNUSED)
emsg(_(e_invalid_argument));
else
{
- if (dict_find(dict, (char_u *)"lnum", -1) != NULL)
+ if (dict_has_key(dict, "lnum"))
curwin->w_cursor.lnum = (linenr_T)dict_get_number(dict, (char_u *)"lnum");
- if (dict_find(dict, (char_u *)"col", -1) != NULL)
+ if (dict_has_key(dict, "col"))
curwin->w_cursor.col = (colnr_T)dict_get_number(dict, (char_u *)"col");
- if (dict_find(dict, (char_u *)"coladd", -1) != NULL)
+ if (dict_has_key(dict, "coladd"))
curwin->w_cursor.coladd = (colnr_T)dict_get_number(dict, (char_u *)"coladd");
- if (dict_find(dict, (char_u *)"curswant", -1) != NULL)
+ if (dict_has_key(dict, "curswant"))
{
curwin->w_curswant = (colnr_T)dict_get_number(dict, (char_u *)"curswant");
curwin->w_set_curswant = FALSE;
}
- if (dict_find(dict, (char_u *)"topline", -1) != NULL)
+ if (dict_has_key(dict, "topline"))
set_topline(curwin, (linenr_T)dict_get_number(dict, (char_u *)"topline"));
#ifdef FEAT_DIFF
- if (dict_find(dict, (char_u *)"topfill", -1) != NULL)
+ if (dict_has_key(dict, "topfill"))
curwin->w_topfill = (int)dict_get_number(dict, (char_u *)"topfill");
#endif
- if (dict_find(dict, (char_u *)"leftcol", -1) != NULL)
+ if (dict_has_key(dict, "leftcol"))
curwin->w_leftcol = (colnr_T)dict_get_number(dict, (char_u *)"leftcol");
- if (dict_find(dict, (char_u *)"skipcol", -1) != NULL)
+ if (dict_has_key(dict, "skipcol"))
curwin->w_skipcol = (colnr_T)dict_get_number(dict, (char_u *)"skipcol");
check_cursor();
diff --git a/src/filepath.c b/src/filepath.c
index 3786ef633..1bde4200d 100644
--- a/src/filepath.c
+++ b/src/filepath.c
@@ -1605,7 +1605,7 @@ readdirex_dict_arg(typval_T *tv, int *cmp)
return FAIL;
}
- if (dict_find(tv->vval.v_dict, (char_u *)"sort", -1) != NULL)
+ if (dict_has_key(tv->vval.v_dict, "sort"))
compare = dict_get_string(tv->vval.v_dict, (char_u *)"sort", FALSE);
else
{
diff --git a/src/highlight.c b/src/highlight.c
index 6add298b0..724c4ba8d 100644
--- a/src/highlight.c
+++ b/src/highlight.c
@@ -718,7 +718,7 @@ highlight_reset_all(void)
# ifdef FEAT_BEVAL_TIP
gui_init_tooltip_font();
# endif
-# if defined(FEAT_MENU) && (defined(FEAT_GUI_ATHENA) || defined(FEAT_GUI_MOTIF))
+# if defined(FEAT_MENU) && defined(FEAT_GUI_MOTIF)
gui_init_menu_font();
# endif
}
@@ -2134,7 +2134,7 @@ hl_do_font(
|| do_menu
# endif
# ifdef FEAT_BEVAL_TIP
- // In Athena & Motif, the Tooltip highlight group is always a fontset
+ // In Motif, the Tooltip highlight group is always a fontset
|| do_tooltip
# endif
)
@@ -2156,7 +2156,7 @@ hl_do_font(
// fontset. Same for the Menu group.
if (do_normal)
gui_init_font(arg, TRUE);
-# if (defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_ATHENA)) && defined(FEAT_MENU)
+# if defined(FEAT_GUI_MOTIF) && defined(FEAT_MENU)
if (do_menu)
{
# ifdef FONTSET_ALWAYS
@@ -2170,7 +2170,7 @@ hl_do_font(
# ifdef FEAT_BEVAL_GUI
if (do_tooltip)
{
- // The Athena widget set cannot currently handle switching between
+ // The Athena widget set could not handle switching between
// displaying a single font and a fontset.
// If the XtNinternational resource is set to True at widget
// creation, then a fontset is always used, otherwise an
@@ -2194,7 +2194,7 @@ hl_do_font(
if (do_normal)
gui_init_font(arg, FALSE);
#ifndef FONTSET_ALWAYS
-# if (defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_ATHENA)) && defined(FEAT_MENU)
+# if defined(FEAT_GUI_MOTIF) && defined(FEAT_MENU)
if (do_menu)
{
gui.menu_font = HL_TABLE()[idx].sg_font;
@@ -4411,7 +4411,7 @@ hlg_add_or_update(dict_T *dict)
if (dict_get_bool(dict, (char_u *)"default", VVAL_FALSE) == VVAL_TRUE)
dodefault = TRUE;
- if (dict_find(dict, (char_u *)"cleared", -1) != NULL)
+ if (dict_has_key(dict, "cleared"))
{
varnumber_T cleared;
@@ -4425,7 +4425,7 @@ hlg_add_or_update(dict_T *dict)
}
}
- if (dict_find(dict, (char_u *)"linksto", -1) != NULL)
+ if (dict_has_key(dict, "linksto"))
{
char_u *linksto;
diff --git a/src/json.c b/src/json.c
index b23bfa089..5be8f7fe6 100644
--- a/src/json.c
+++ b/src/json.c
@@ -1027,8 +1027,8 @@ item_end:
case JSON_OBJECT:
if (cur_item != NULL
- && dict_find(top_item->jd_tv.vval.v_dict,
- top_item->jd_key, -1) != NULL)
+ && dict_has_key(top_item->jd_tv.vval.v_dict,
+ (char *)top_item->jd_key))
{
semsg(_(e_duplicate_key_in_json_str), top_item->jd_key);
clear_tv(cur_item);
diff --git a/src/match.c b/src/match.c
index 5041d6b34..ce35bacb8 100644
--- a/src/match.c
+++ b/src/match.c
@@ -938,7 +938,7 @@ matchadd_dict_arg(typval_T *tv, char_u **conceal_char, win_T **win)
return FAIL;
}
- if (dict_find(tv->vval.v_dict, (char_u *)"conceal", -1) != NULL)
+ if (dict_has_key(tv->vval.v_dict, "conceal"))
*conceal_char = dict_get_string(tv->vval.v_dict,
(char_u *)"conceal", FALSE);
@@ -1088,11 +1088,11 @@ f_setmatches(typval_T *argvars UNUSED, typval_T *rettv UNUSED)
emsg(_(e_invalid_argument));
return;
}
- if (!(dict_find(d, (char_u *)"group", -1) != NULL
- && (dict_find(d, (char_u *)"pattern", -1) != NULL
- || dict_find(d, (char_u *)"pos1", -1) != NULL)
- && dict_find(d, (char_u *)"priority", -1) != NULL
- && dict_find(d, (char_u *)"id", -1) != NULL))
+ if (!(dict_has_key(d, "group")
+ && (dict_has_key(d, "pattern")
+ || dict_has_key(d, "pos1"))
+ && dict_has_key(d, "priority")
+ && dict_has_key(d, "id")))
{
emsg(_(e_invalid_argument));
return;
@@ -1113,7 +1113,7 @@ f_setmatches(typval_T *argvars UNUSED, typval_T *rettv UNUSED)
char_u *conceal;
d = li->li_tv.vval.v_dict;
- if (dict_find(d, (char_u *)"pattern", -1) == NULL)
+ if (!dict_has_key(d, "pattern"))
{
if (s == NULL)
{
@@ -1142,7 +1142,7 @@ f_setmatches(typval_T *argvars UNUSED, typval_T *rettv UNUSED)
group = dict_get_string(d, (char_u *)"group", TRUE);
priority = (int)dict_get_number(d, (char_u *)"priority");
id = (int)dict_get_number(d, (char_u *)"id");
- conceal = dict_find(d, (char_u *)"conceal", -1) != NULL
+ conceal = dict_has_key(d, "conceal")
? dict_get_string(d, (char_u *)"conceal", TRUE)
: NULL;
if (i == 0)
diff --git a/src/popupwin.c b/src/popupwin.c
index c3251eae1..9c0cade2d 100644
--- a/src/popupwin.c
+++ b/src/popupwin.c
@@ -1957,7 +1957,7 @@ popup_create(typval_T *argvars, typval_T *rettv, create_type_T type)
if (d != NULL)
{
- if (dict_find(d, (char_u *)"tabpage", -1) != NULL)
+ if (dict_has_key(d, "tabpage"))
tabnr = (int)dict_get_number(d, (char_u *)"tabpage");
else if (type == TYPE_NOTIFICATION)
tabnr = -1; // notifications are global by default
diff --git a/src/proto/dict.pro b/src/proto/dict.pro
index 7db011d21..30a305584 100644
--- a/src/proto/dict.pro
+++ b/src/proto/dict.pro
@@ -27,6 +27,7 @@ char_u *dict_iterate_next(dict_iterator_T *iter, typval_T **tv_result);
int dict_add_dict(dict_T *d, char *key, dict_T *dict);
long dict_len(dict_T *d);
dictitem_T *dict_find(dict_T *d, char_u *key, int len);
+int dict_has_key(dict_T *d, char *key);
int dict_get_tv(dict_T *d, char_u *key, typval_T *rettv);
char_u *dict_get_string(dict_T *d, char_u *key, int save);
varnumber_T dict_get_number(dict_T *d, char_u *key);
diff --git a/src/quickfix.c b/src/quickfix.c
index c2162e9f2..e38011bf5 100644
--- a/src/quickfix.c
+++ b/src/quickfix.c
@@ -6859,7 +6859,7 @@ qf_getprop_keys2flags(dict_T *what, int loclist)
{
int flags = QF_GETLIST_NONE;
- if (dict_find(what, (char_u *)"all", -1) != NULL)
+ if (dict_has_key(what, "all"))
{
flags |= QF_GETLIST_ALL;
if (!loclist)
@@ -6867,40 +6867,40 @@ qf_getprop_keys2flags(dict_T *what, int loclist)
flags &= ~ QF_GETLIST_FILEWINID;
}
- if (dict_find(what, (char_u *)"title", -1) != NULL)
+ if (dict_has_key(what, "title"))
flags |= QF_GETLIST_TITLE;
- if (dict_find(what, (char_u *)"nr", -1) != NULL)
+ if (dict_has_key(what, "nr"))
flags |= QF_GETLIST_NR;
- if (dict_find(what, (char_u *)"winid", -1) != NULL)
+ if (dict_has_key(what, "winid"))
flags |= QF_GETLIST_WINID;
- if (dict_find(what, (char_u *)"context", -1) != NULL)
+ if (dict_has_key(what, "context"))
flags |= QF_GETLIST_CONTEXT;
- if (dict_find(what, (char_u *)"id", -1) != NULL)
+ if (dict_has_key(what, "id"))
flags |= QF_GETLIST_ID;
- if (dict_find(what, (char_u *)"items", -1) != NULL)
+ if (dict_has_key(what, "items"))
flags |= QF_GETLIST_ITEMS;
- if (dict_find(what, (char_u *)"idx", -1) != NULL)
+ if (dict_has_key(what, "idx"))
flags |= QF_GETLIST_IDX;
- if (dict_find(what, (char_u *)"size", -1) != NULL)
+ if (dict_has_key(what, "size"))
flags |= QF_GETLIST_SIZE;
- if (dict_find(what, (char_u *)"changedtick", -1) != NULL)
+ if (dict_has_key(what, "changedtick"))
flags |= QF_GETLIST_TICK;
- if (loclist && dict_find(what, (char_u *)"filewinid", -1) != NULL)
+ if (loclist && dict_has_key(what, "filewinid"))
flags |= QF_GETLIST_FILEWINID;
- if (dict_find(what, (char_u *)"qfbufnr", -1) != NULL)
+ if (dict_has_key(what, "qfbufnr"))
flags |= QF_GETLIST_QFBUFNR;
- if (dict_find(what, (char_u *)"quickfixtextfunc", -1) != NULL)
+ if (dict_has_key(what, "quickfixtextfunc"))
flags |= QF_GETLIST_QFTF;
return flags;
@@ -7241,7 +7241,7 @@ qf_add_entry_from_dict(
}
// If the 'valid' field is present it overrules the detected value.
- if ((dict_find(d, (char_u *)"valid", -1)) != NULL)
+ if (dict_has_key(d, "valid"))
valid = (int)dict_get_bool(d, (char_u *)"valid", FALSE);
status = qf_add_entry(qfl,
diff --git a/src/search.c b/src/search.c
index 98241a471..a66075fba 100644
--- a/src/search.c
+++ b/src/search.c
@@ -4878,7 +4878,7 @@ do_fuzzymatch(typval_T *argvars, typval_T *rettv, int retmatchpos)
return;
}
}
- if (dict_find(d, (char_u *)"matchseq", -1) != NULL)
+ if (dict_has_key(d, "matchseq"))
matchseq = TRUE;
}
diff --git a/src/sign.c b/src/sign.c
index 3d9c387d4..673d90275 100644
--- a/src/sign.c
+++ b/src/sign.c
@@ -2786,7 +2786,7 @@ sign_unplace_from_dict(typval_T *group_tv, dict_T *dict)
if (buf == NULL)
goto cleanup;
}
- if (dict_find(dict, (char_u *)"id", -1) != NULL)
+ if (dict_has_key(dict, "id"))
{
sign_id = dict_get_number(dict, (char_u *)"id");
if (sign_id <= 0)
diff --git a/src/tag.c b/src/tag.c
index b7ac9c150..577a4b76f 100644
--- a/src/tag.c
+++ b/src/tag.c
@@ -4313,7 +4313,7 @@ add_tag_field(
int retval;
// check that the field name doesn't exist yet
- if (dict_find(dict, (char_u *)field_name, -1) != NULL)
+ if (dict_has_key(dict, field_name))
{
if (p_verbose > 0)
{
diff --git a/src/terminal.c b/src/terminal.c
index 75f7a08aa..0849f2c00 100644
--- a/src/terminal.c
+++ b/src/terminal.c
@@ -4311,13 +4311,13 @@ handle_drop_command(listitem_T *item)
if (p != NULL)
get_bad_opt(p, &ea);
- if (dict_find(dict, (char_u *)"bin", -1) != NULL)
+ if (dict_has_key(dict, "bin"))
ea.force_bin = FORCE_BIN;
- if (dict_find(dict, (char_u *)"binary", -1) != NULL)
+ if (dict_has_key(dict, "binary"))
ea.force_bin = FORCE_BIN;
- if (dict_find(dict, (char_u *)"nobin", -1) != NULL)
+ if (dict_has_key(dict, "nobin"))
ea.force_bin = FORCE_NOBIN;
- if (dict_find(dict, (char_u *)"nobinary", -1) != NULL)
+ if (dict_has_key(dict, "nobinary"))
ea.force_bin = FORCE_NOBIN;
}
diff --git a/src/testing.c b/src/testing.c
index c05348753..334012302 100644
--- a/src/testing.c
+++ b/src/testing.c
@@ -1285,10 +1285,10 @@ test_gui_drop_files(dict_T *args UNUSED)
list_T *l;
listitem_T *li;
- if (dict_find(args, (char_u *)"files", -1) == NULL
- || dict_find(args, (char_u *)"row", -1) == NULL
- || dict_find(args, (char_u *)"col", -1) == NULL
- || dict_find(args, (char_u *)"modifiers", -1) == NULL)
+ if (!dict_has_key(args, "files")
+ || !dict_has_key(args, "row")
+ || !dict_has_key(args, "col")
+ || !dict_has_key(args, "modifiers"))
return FALSE;
(void)dict_get_tv(args, (char_u *)"files", &t);
@@ -1341,10 +1341,10 @@ test_gui_find_repl(dict_T *args)
int forward;
int retval;
- if (dict_find(args, (char_u *)"find_text", -1) == NULL
- || dict_find(args, (char_u *)"repl_text", -1) == NULL
- || dict_find(args, (char_u *)"flags", -1) == NULL
- || dict_find(args, (char_u *)"forward", -1) == NULL)
+ if (!dict_has_key(args, "find_text")
+ || !dict_has_key(args, "repl_text")
+ || !dict_has_key(args, "flags")
+ || !dict_has_key(args, "forward"))
return FALSE;
find_text = dict_get_string(args, (char_u *)"find_text", TRUE);
@@ -1370,16 +1370,16 @@ test_gui_mouse_event(dict_T *args)
int_u mods;
int move;
- if (dict_find(args, (char_u *)"row", -1) == NULL
- || dict_find(args, (char_u *)"col", -1) == NULL)
+ if (!dict_has_key(args, "row")
+ || !dict_has_key(args, "col"))
return FALSE;
// Note: "move" is optional, requires fewer arguments
move = (int)dict_get_bool(args, (char_u *)"move", FALSE);
- if (!move && (dict_find(args, (char_u *)"button", -1) == NULL
- || dict_find(args, (char_u *)"multiclick", -1) == NULL
- || dict_find(args, (char_u *)"modifiers", -1) == NULL))
+ if (!move && (!dict_has_key(args, "button")
+ || !dict_has_key(args, "multiclick")
+ || !dict_has_key(args, "modifiers")))
return FALSE;
row = (int)dict_get_number(args, (char_u *)"row");
@@ -1408,9 +1408,9 @@ test_gui_scrollbar(dict_T *args)
int dragging;
scrollbar_T *sb = NULL;
- if (dict_find(args, (char_u *)"which", -1) == NULL
- || dict_find(args, (char_u *)"value", -1) == NULL
- || dict_find(args, (char_u *)"dragging", -1) == NULL)
+ if (!dict_has_key(args, "which")
+ || !dict_has_key(args, "value")
+ || !dict_has_key(args, "dragging"))
return FALSE;
which = dict_get_string(args, (char_u *)"which", FALSE);
@@ -1443,7 +1443,7 @@ test_gui_tabline_event(dict_T *args UNUSED)
# ifdef FEAT_GUI_TABLINE
int tabnr;
- if (dict_find(args, (char_u *)"tabnr", -1) == NULL)
+ if (!dict_has_key(args, "tabnr"))
return FALSE;
tabnr = (int)dict_get_number(args, (char_u *)"tabnr");
@@ -1461,8 +1461,8 @@ test_gui_tabmenu_event(dict_T *args UNUSED)
int tabnr;
int item;
- if (dict_find(args, (char_u *)"tabnr", -1) == NULL
- || dict_find(args, (char_u *)"item", -1) == NULL)
+ if (!dict_has_key(args, "tabnr")
+ || !dict_has_key(args, "item"))
return FALSE;
tabnr = (int)dict_get_number(args, (char_u *)"tabnr");
diff --git a/src/textprop.c b/src/textprop.c
index 6c81d4a62..f5cf6b851 100644
--- a/src/textprop.c
+++ b/src/textprop.c
@@ -331,14 +331,14 @@ f_prop_add_list(typval_T *argvars, typval_T *rettv UNUSED)
}
dict = argvars[0].vval.v_dict;
- if (dict == NULL || dict_find(dict, (char_u *)"type", -1) == NULL)
+ if (dict == NULL || !dict_has_key(dict, "type"))
{
emsg(_(e_missing_property_type_name));
return;
}
type_name = dict_get_string(dict, (char_u *)"type", FALSE);
- if (dict_find(dict, (char_u *)"id", -1) != NULL)
+ if (dict_has_key(dict, "id"))
id = dict_get_number(dict, (char_u *)"id");
if (get_bufnr_from_arg(&argvars[0], &buf) == FAIL)
@@ -391,14 +391,14 @@ prop_add_common(
buf_T *buf = default_buf;
int id = 0;
- if (dict == NULL || dict_find(dict, (char_u *)"type", -1) == NULL)
+ if (dict == NULL || !dict_has_key(dict, "type"))
{
emsg(_(e_missing_property_type_name));
return;
}
type_name = dict_get_string(dict, (char_u *)"type", FALSE);
- if (dict_find(dict, (char_u *)"end_lnum", -1) != NULL)
+ if (dict_has_key(dict, "end_lnum"))
{
end_lnum = dict_get_number(dict, (char_u *)"end_lnum");
if (end_lnum < start_lnum)
@@ -410,7 +410,7 @@ prop_add_common(
else
end_lnum = start_lnum;
- if (dict_find(dict, (char_u *)"length", -1) != NULL)
+ if (dict_has_key(dict, "length"))
{
long length = dict_get_number(dict, (char_u *)"length");
@@ -421,7 +421,7 @@ prop_add_common(
}
end_col = start_col + length;
}
- else if (dict_find(dict, (char_u *)"end_col", -1) != NULL)
+ else if (dict_has_key(dict, "end_col"))
{
end_col = dict_get_number(dict, (char_u *)"end_col");
if (end_col <= 0)
@@ -435,7 +435,7 @@ prop_add_common(
else
end_col = 1;
- if (dict_find(dict, (char_u *)"id", -1) != NULL)
+ if (dict_has_key(dict, "id"))
id = dict_get_number(dict, (char_u *)"id");
if (dict_arg != NULL && get_bufnr_from_arg(dict_arg, &buf) == FAIL)
@@ -777,12 +777,12 @@ f_prop_find(typval_T *argvars, typval_T *rettv)
skipstart = dict_get_bool(dict, (char_u *)"skipstart", 0);
- if (dict_find(dict, (char_u *)"id", -1) != NULL)
+ if (dict_has_key(dict, "id"))
{
id = dict_get_number(dict, (char_u *)"id");
id_found = TRUE;
}
- if (dict_find(dict, (char_u *)"type", -1))
+ if (dict_has_key(dict, "type"))
{
char_u *name = dict_get_string(dict, (char_u *)"type", FALSE);
proptype_T *type = lookup_prop_type(name, buf);
@@ -1202,9 +1202,9 @@ f_prop_remove(typval_T *argvars, typval_T *rettv)
do_all = dict_get_bool(dict, (char_u *)"all", FALSE);
- if (dict_find(dict, (char_u *)"id", -1) != NULL)
+ if (dict_has_key(dict, "id"))
id = dict_get_number(dict, (char_u *)"id");
- if (dict_find(dict, (char_u *)"type", -1))
+ if (dict_has_key(dict, "type"))
{
char_u *name = dict_get_string(dict, (char_u *)"type", FALSE);
proptype_T *type = lookup_prop_type(name, buf);
diff --git a/src/time.c b/src/time.c
index 00275ef66..53ac8531b 100644
--- a/src/time.c
+++ b/src/time.c
@@ -848,7 +848,7 @@ f_timer_start(typval_T *argvars, typval_T *rettv)
semsg(_(e_invalid_argument_str), tv_get_string(&argvars[2]));
return;
}
- if (dict_find(dict, (char_u *)"repeat", -1) != NULL)
+ if (dict_has_key(dict, "repeat"))
repeat = dict_get_number(dict, (char_u *)"repeat");
}
diff --git a/src/version.c b/src/version.c
index 8b7450c66..bf104110a 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 4683,
+/**/
4682,
/**/
4681,