]> granicus.if.org Git - vim/commitdiff
patch 8.2.4683: verbose check with dict_find() to see if a key is present v8.2.4683
authorYegappan Lakshmanan <yegappan@yahoo.com>
Mon, 4 Apr 2022 14:16:54 +0000 (15:16 +0100)
committerBram Moolenaar <Bram@vim.org>
Mon, 4 Apr 2022 14:16:54 +0000 (15:16 +0100)
Problem:    Verbose check with dict_find() to see if a key is present.
Solution:   Add dict_has_key(). (Yegappan Lakshmanan, closes #10074)

18 files changed:
src/channel.c
src/dict.c
src/evalwindow.c
src/filepath.c
src/highlight.c
src/json.c
src/match.c
src/popupwin.c
src/proto/dict.pro
src/quickfix.c
src/search.c
src/sign.c
src/tag.c
src/terminal.c
src/testing.c
src/textprop.c
src/time.c
src/version.c

index 470092e1535733dfd687284606ecd707cb56963a..66ba55df65aab9f1a9098653f03d45b5a84c2c3c 100644 (file)
@@ -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]);
     }
index c2dc6a7c23b3048d6e45f4ee566a301488623fe7..88cc4b3fc8152768b970175c76eedc5e2fae8191 100644 (file)
@@ -648,6 +648,15 @@ dict_find(dict_T *d, char_u *key, int len)
     return HI2DI(hi);
 }
 
+/*
+ * 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)
index a47a0c0470036c1b168e6b1e122f0b11f83bd8ea..f6bc79f9e8b1b713e55092147617d154f7b9037d 100644 (file)
@@ -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();
index 3786ef63307aa2c9ba2f91cd70c6291d297a187f..1bde4200d3cbeabb9d346a6632548dadeee44199 100644 (file)
@@ -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
     {
index 6add298b01e8072ec4a2dee8378e0940d0b5f88a..724c4ba8d7b8a96c3b964b0428b7f6dde2491328 100644 (file)
@@ -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;
 
index b23bfa089582372d1df04d927ad7cbc1398585f0..5be8f7fe66ddab704dd3d013101e1b1caf5c3b23 100644 (file)
@@ -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);
index 5041d6b3427f8fa5407bf4be63794b831c329914..ce35bacb8c8f0472cd2e154e3c513fc7982e07f5 100644 (file)
@@ -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)
index c3251eae13d2e48e4e1370b2e261952de3f70785..9c0cade2da1d645ab686e971643f147f685b666d 100644 (file)
@@ -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
index 7db011d210176cc6ea8e761deabb78afcc995006..30a30558413573de742fd670b3a3a01574dea584 100644 (file)
@@ -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);
index c2162e9f25d145c86f0067f905370c6c31f2d93a..e38011bf5de17717541177a1ff08e005ad1a0026 100644 (file)
@@ -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,
index 98241a471c7f807f78ba3d44ca8063cbd368f0b6..a66075fba0ad7b0665762eaa62d0edf78e74b38b 100644 (file)
@@ -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;
     }
 
index 3d9c387d446c6a2e4b7ea1f96f786e54c6758daf..673d9027517a9dae96fc1cb213b911bd8e0da355 100644 (file)
@@ -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)
index b7ac9c150a815a34dd676c18702aa01388210109..577a4b76f50e323f2ad282be2e2fda754f5870de 100644 (file)
--- 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)
        {
index 75f7a08aae149a36233c48559535e20251bae97b..0849f2c007b73c74fba59f496c35597b6f685f98 100644 (file)
@@ -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;
     }
 
index c0534875371ef71b02adec4bb5fce2115e223a73..33401230216efadef74622243cbe6676be726034 100644 (file)
@@ -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");
index 6c81d4a6249d13f43ffb59db7ac057075a738301..f5cf6b851ca639629bbd932fbe045cb114fe1c68 100644 (file)
@@ -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);
index 00275ef6651edb040c7522ef4eb477e0be6ca93f..53ac8531b34964d45a02a19b03214a2f5443c53a 100644 (file)
@@ -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");
     }
 
index 8b7450c66767b1b198262301209991561c1e1949..bf104110aaa05a72565580fa39479ad6b031c52e 100644 (file)
@@ -750,6 +750,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    4683,
 /**/
     4682,
 /**/