Patch 8.2.4683
Problem: Verbose check with dict_find() to see if a key is present.
Solution: Add dict_has_key(). (Yegappan Lakshmanan, closes #10074)
Files: 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
*** ../vim-8.2.4682/src/channel.c 2022-03-30 10:14:41.485657271 +0100
--- src/channel.c 2022-04-04 15:14:05.061617592 +0100
***************
*** 4460,4467 ****
}
if (argvars[2].v_type == VAR_DICT)
! if (dict_find(argvars[2].vval.v_dict, (char_u *)"callback", -1)
! != NULL)
callback_present = TRUE;
if (eval || callback_present)
--- 4460,4466 ----
}
if (argvars[2].v_type == VAR_DICT)
! if (dict_has_key(argvars[2].vval.v_dict, "callback"))
callback_present = TRUE;
if (eval || callback_present)
***************
*** 4482,4488 ****
if (di != NULL)
id = di->di_tv.vval.v_number;
}
! if (dict_find(d, (char_u *)"jsonrpc", -1) == NULL)
dict_add_string(d, "jsonrpc", (char_u *)"2.0");
text = json_encode_lsp_msg(&argvars[1]);
}
--- 4481,4487 ----
if (di != NULL)
id = di->di_tv.vval.v_number;
}
! if (!dict_has_key(d, "jsonrpc"))
dict_add_string(d, "jsonrpc", (char_u *)"2.0");
text = json_encode_lsp_msg(&argvars[1]);
}
*** ../vim-8.2.4682/src/dict.c 2022-02-05 14:05:48.128149067 +0000
--- src/dict.c 2022-04-04 15:14:05.061617592 +0100
***************
*** 649,654 ****
--- 649,663 ----
}
/*
+ * 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,1589 ****
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;
}
#endif // defined(FEAT_EVAL)
--- 1591,1598 ----
if (argvars[0].vval.v_dict == NULL)
return;
! rettv->vval.v_number = dict_has_key(argvars[0].vval.v_dict,
! (char *)tv_get_string(&argvars[1]));
}
#endif // defined(FEAT_EVAL)
*** ../vim-8.2.4682/src/evalwindow.c 2022-01-11 12:37:16.827153847 +0000
--- src/evalwindow.c 2022-04-04 15:14:05.061617592 +0100
***************
*** 1220,1246 ****
emsg(_(e_invalid_argument));
else
{
! if (dict_find(dict, (char_u *)"lnum", -1) != NULL)
curwin->w_cursor.lnum = (linenr_T)dict_get_number(dict, (char_u
*)"lnum");
! if (dict_find(dict, (char_u *)"col", -1) != NULL)
curwin->w_cursor.col = (colnr_T)dict_get_number(dict, (char_u
*)"col");
! if (dict_find(dict, (char_u *)"coladd", -1) != NULL)
curwin->w_cursor.coladd = (colnr_T)dict_get_number(dict, (char_u
*)"coladd");
! if (dict_find(dict, (char_u *)"curswant", -1) != NULL)
{
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)
set_topline(curwin, (linenr_T)dict_get_number(dict, (char_u
*)"topline"));
#ifdef FEAT_DIFF
! if (dict_find(dict, (char_u *)"topfill", -1) != NULL)
curwin->w_topfill = (int)dict_get_number(dict, (char_u *)"topfill");
#endif
! if (dict_find(dict, (char_u *)"leftcol", -1) != NULL)
curwin->w_leftcol = (colnr_T)dict_get_number(dict, (char_u
*)"leftcol");
! if (dict_find(dict, (char_u *)"skipcol", -1) != NULL)
curwin->w_skipcol = (colnr_T)dict_get_number(dict, (char_u
*)"skipcol");
check_cursor();
--- 1220,1246 ----
emsg(_(e_invalid_argument));
else
{
! if (dict_has_key(dict, "lnum"))
curwin->w_cursor.lnum = (linenr_T)dict_get_number(dict, (char_u
*)"lnum");
! if (dict_has_key(dict, "col"))
curwin->w_cursor.col = (colnr_T)dict_get_number(dict, (char_u
*)"col");
! if (dict_has_key(dict, "coladd"))
curwin->w_cursor.coladd = (colnr_T)dict_get_number(dict, (char_u
*)"coladd");
! 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_has_key(dict, "topline"))
set_topline(curwin, (linenr_T)dict_get_number(dict, (char_u
*)"topline"));
#ifdef FEAT_DIFF
! if (dict_has_key(dict, "topfill"))
curwin->w_topfill = (int)dict_get_number(dict, (char_u *)"topfill");
#endif
! if (dict_has_key(dict, "leftcol"))
curwin->w_leftcol = (colnr_T)dict_get_number(dict, (char_u
*)"leftcol");
! if (dict_has_key(dict, "skipcol"))
curwin->w_skipcol = (colnr_T)dict_get_number(dict, (char_u
*)"skipcol");
check_cursor();
*** ../vim-8.2.4682/src/filepath.c 2022-04-03 21:30:25.022559205 +0100
--- src/filepath.c 2022-04-04 15:14:05.065617606 +0100
***************
*** 1605,1611 ****
return FAIL;
}
! if (dict_find(tv->vval.v_dict, (char_u *)"sort", -1) != NULL)
compare = dict_get_string(tv->vval.v_dict, (char_u *)"sort", FALSE);
else
{
--- 1605,1611 ----
return FAIL;
}
! if (dict_has_key(tv->vval.v_dict, "sort"))
compare = dict_get_string(tv->vval.v_dict, (char_u *)"sort", FALSE);
else
{
*** ../vim-8.2.4682/src/highlight.c 2022-02-16 19:24:03.622162411 +0000
--- src/highlight.c 2022-04-04 15:14:05.065617606 +0100
***************
*** 718,724 ****
# ifdef FEAT_BEVAL_TIP
gui_init_tooltip_font();
# endif
! # if defined(FEAT_MENU) && (defined(FEAT_GUI_ATHENA) ||
defined(FEAT_GUI_MOTIF))
gui_init_menu_font();
# endif
}
--- 718,724 ----
# ifdef FEAT_BEVAL_TIP
gui_init_tooltip_font();
# endif
! # if defined(FEAT_MENU) && defined(FEAT_GUI_MOTIF)
gui_init_menu_font();
# endif
}
***************
*** 2134,2140 ****
|| do_menu
# endif
# ifdef FEAT_BEVAL_TIP
! // In Athena & Motif, the Tooltip highlight group is always a fontset
|| do_tooltip
# endif
)
--- 2134,2140 ----
|| do_menu
# endif
# ifdef FEAT_BEVAL_TIP
! // In Motif, the Tooltip highlight group is always a fontset
|| do_tooltip
# endif
)
***************
*** 2156,2162 ****
// 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 (do_menu)
{
# ifdef FONTSET_ALWAYS
--- 2156,2162 ----
// fontset. Same for the Menu group.
if (do_normal)
gui_init_font(arg, TRUE);
! # if defined(FEAT_GUI_MOTIF) && defined(FEAT_MENU)
if (do_menu)
{
# ifdef FONTSET_ALWAYS
***************
*** 2170,2176 ****
# ifdef FEAT_BEVAL_GUI
if (do_tooltip)
{
! // The Athena widget set cannot currently 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
--- 2170,2176 ----
# ifdef FEAT_BEVAL_GUI
if (do_tooltip)
{
! // 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,2200 ****
if (do_normal)
gui_init_font(arg, FALSE);
#ifndef FONTSET_ALWAYS
! # if (defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_ATHENA)) &&
defined(FEAT_MENU)
if (do_menu)
{
gui.menu_font = HL_TABLE()[idx].sg_font;
--- 2194,2200 ----
if (do_normal)
gui_init_font(arg, FALSE);
#ifndef FONTSET_ALWAYS
! # if defined(FEAT_GUI_MOTIF) && defined(FEAT_MENU)
if (do_menu)
{
gui.menu_font = HL_TABLE()[idx].sg_font;
***************
*** 4411,4417 ****
if (dict_get_bool(dict, (char_u *)"default", VVAL_FALSE) == VVAL_TRUE)
dodefault = TRUE;
! if (dict_find(dict, (char_u *)"cleared", -1) != NULL)
{
varnumber_T cleared;
--- 4411,4417 ----
if (dict_get_bool(dict, (char_u *)"default", VVAL_FALSE) == VVAL_TRUE)
dodefault = TRUE;
! if (dict_has_key(dict, "cleared"))
{
varnumber_T cleared;
***************
*** 4425,4431 ****
}
}
! if (dict_find(dict, (char_u *)"linksto", -1) != NULL)
{
char_u *linksto;
--- 4425,4431 ----
}
}
! if (dict_has_key(dict, "linksto"))
{
char_u *linksto;
*** ../vim-8.2.4682/src/json.c 2022-03-30 10:14:41.485657271 +0100
--- src/json.c 2022-04-04 15:14:05.065617606 +0100
***************
*** 1027,1034 ****
case JSON_OBJECT:
if (cur_item != NULL
! && dict_find(top_item->jd_tv.vval.v_dict,
! top_item->jd_key, -1) != NULL)
{
semsg(_(e_duplicate_key_in_json_str), top_item->jd_key);
clear_tv(cur_item);
--- 1027,1034 ----
case JSON_OBJECT:
if (cur_item != 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);
*** ../vim-8.2.4682/src/match.c 2022-01-28 15:28:00.208927722 +0000
--- src/match.c 2022-04-04 15:14:05.065617606 +0100
***************
*** 938,944 ****
return FAIL;
}
! if (dict_find(tv->vval.v_dict, (char_u *)"conceal", -1) != NULL)
*conceal_char = dict_get_string(tv->vval.v_dict,
(char_u *)"conceal", FALSE);
--- 938,944 ----
return FAIL;
}
! if (dict_has_key(tv->vval.v_dict, "conceal"))
*conceal_char = dict_get_string(tv->vval.v_dict,
(char_u *)"conceal", FALSE);
***************
*** 1088,1098 ****
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))
{
emsg(_(e_invalid_argument));
return;
--- 1088,1098 ----
emsg(_(e_invalid_argument));
return;
}
! 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,1119 ****
char_u *conceal;
d = li->li_tv.vval.v_dict;
! if (dict_find(d, (char_u *)"pattern", -1) == NULL)
{
if (s == NULL)
{
--- 1113,1119 ----
char_u *conceal;
d = li->li_tv.vval.v_dict;
! if (!dict_has_key(d, "pattern"))
{
if (s == NULL)
{
***************
*** 1142,1148 ****
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
? dict_get_string(d, (char_u *)"conceal", TRUE)
: NULL;
if (i == 0)
--- 1142,1148 ----
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_has_key(d, "conceal")
? dict_get_string(d, (char_u *)"conceal", TRUE)
: NULL;
if (i == 0)
*** ../vim-8.2.4682/src/popupwin.c 2022-04-02 21:46:14.989612828 +0100
--- src/popupwin.c 2022-04-04 15:14:05.065617606 +0100
***************
*** 1957,1963 ****
if (d != NULL)
{
! if (dict_find(d, (char_u *)"tabpage", -1) != NULL)
tabnr = (int)dict_get_number(d, (char_u *)"tabpage");
else if (type == TYPE_NOTIFICATION)
tabnr = -1; // notifications are global by default
--- 1957,1963 ----
if (d != 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
*** ../vim-8.2.4682/src/proto/dict.pro 2022-02-02 20:01:21.957210955 +0000
--- src/proto/dict.pro 2022-04-04 15:14:05.065617606 +0100
***************
*** 27,32 ****
--- 27,33 ----
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);
*** ../vim-8.2.4682/src/quickfix.c 2022-03-30 10:57:36.735346197 +0100
--- src/quickfix.c 2022-04-04 15:14:05.065617606 +0100
***************
*** 6859,6865 ****
{
int flags = QF_GETLIST_NONE;
! if (dict_find(what, (char_u *)"all", -1) != NULL)
{
flags |= QF_GETLIST_ALL;
if (!loclist)
--- 6859,6865 ----
{
int flags = QF_GETLIST_NONE;
! if (dict_has_key(what, "all"))
{
flags |= QF_GETLIST_ALL;
if (!loclist)
***************
*** 6867,6906 ****
flags &= ~ QF_GETLIST_FILEWINID;
}
! if (dict_find(what, (char_u *)"title", -1) != NULL)
flags |= QF_GETLIST_TITLE;
! if (dict_find(what, (char_u *)"nr", -1) != NULL)
flags |= QF_GETLIST_NR;
! if (dict_find(what, (char_u *)"winid", -1) != NULL)
flags |= QF_GETLIST_WINID;
! if (dict_find(what, (char_u *)"context", -1) != NULL)
flags |= QF_GETLIST_CONTEXT;
! if (dict_find(what, (char_u *)"id", -1) != NULL)
flags |= QF_GETLIST_ID;
! if (dict_find(what, (char_u *)"items", -1) != NULL)
flags |= QF_GETLIST_ITEMS;
! if (dict_find(what, (char_u *)"idx", -1) != NULL)
flags |= QF_GETLIST_IDX;
! if (dict_find(what, (char_u *)"size", -1) != NULL)
flags |= QF_GETLIST_SIZE;
! if (dict_find(what, (char_u *)"changedtick", -1) != NULL)
flags |= QF_GETLIST_TICK;
! if (loclist && dict_find(what, (char_u *)"filewinid", -1) != NULL)
flags |= QF_GETLIST_FILEWINID;
! if (dict_find(what, (char_u *)"qfbufnr", -1) != NULL)
flags |= QF_GETLIST_QFBUFNR;
! if (dict_find(what, (char_u *)"quickfixtextfunc", -1) != NULL)
flags |= QF_GETLIST_QFTF;
return flags;
--- 6867,6906 ----
flags &= ~ QF_GETLIST_FILEWINID;
}
! if (dict_has_key(what, "title"))
flags |= QF_GETLIST_TITLE;
! if (dict_has_key(what, "nr"))
flags |= QF_GETLIST_NR;
! if (dict_has_key(what, "winid"))
flags |= QF_GETLIST_WINID;
! if (dict_has_key(what, "context"))
flags |= QF_GETLIST_CONTEXT;
! if (dict_has_key(what, "id"))
flags |= QF_GETLIST_ID;
! if (dict_has_key(what, "items"))
flags |= QF_GETLIST_ITEMS;
! if (dict_has_key(what, "idx"))
flags |= QF_GETLIST_IDX;
! if (dict_has_key(what, "size"))
flags |= QF_GETLIST_SIZE;
! if (dict_has_key(what, "changedtick"))
flags |= QF_GETLIST_TICK;
! if (loclist && dict_has_key(what, "filewinid"))
flags |= QF_GETLIST_FILEWINID;
! if (dict_has_key(what, "qfbufnr"))
flags |= QF_GETLIST_QFBUFNR;
! if (dict_has_key(what, "quickfixtextfunc"))
flags |= QF_GETLIST_QFTF;
return flags;
***************
*** 7241,7247 ****
}
// If the 'valid' field is present it overrules the detected value.
! if ((dict_find(d, (char_u *)"valid", -1)) != NULL)
valid = (int)dict_get_bool(d, (char_u *)"valid", FALSE);
status = qf_add_entry(qfl,
--- 7241,7247 ----
}
// If the 'valid' field is present it overrules the detected value.
! if (dict_has_key(d, "valid"))
valid = (int)dict_get_bool(d, (char_u *)"valid", FALSE);
status = qf_add_entry(qfl,
*** ../vim-8.2.4682/src/search.c 2022-02-27 12:07:26.666960401 +0000
--- src/search.c 2022-04-04 15:14:05.065617606 +0100
***************
*** 4878,4884 ****
return;
}
}
! if (dict_find(d, (char_u *)"matchseq", -1) != NULL)
matchseq = TRUE;
}
--- 4878,4884 ----
return;
}
}
! if (dict_has_key(d, "matchseq"))
matchseq = TRUE;
}
*** ../vim-8.2.4682/src/sign.c 2022-03-22 20:42:09.174172862 +0000
--- src/sign.c 2022-04-04 15:14:05.069617614 +0100
***************
*** 2786,2792 ****
if (buf == NULL)
goto cleanup;
}
! if (dict_find(dict, (char_u *)"id", -1) != NULL)
{
sign_id = dict_get_number(dict, (char_u *)"id");
if (sign_id <= 0)
--- 2786,2792 ----
if (buf == NULL)
goto cleanup;
}
! if (dict_has_key(dict, "id"))
{
sign_id = dict_get_number(dict, (char_u *)"id");
if (sign_id <= 0)
*** ../vim-8.2.4682/src/tag.c 2022-03-13 19:23:44.912318213 +0000
--- src/tag.c 2022-04-04 15:14:05.069617614 +0100
***************
*** 4313,4319 ****
int retval;
// check that the field name doesn't exist yet
! if (dict_find(dict, (char_u *)field_name, -1) != NULL)
{
if (p_verbose > 0)
{
--- 4313,4319 ----
int retval;
// check that the field name doesn't exist yet
! if (dict_has_key(dict, field_name))
{
if (p_verbose > 0)
{
*** ../vim-8.2.4682/src/terminal.c 2022-02-25 20:48:22.135350734 +0000
--- src/terminal.c 2022-04-04 15:14:05.069617614 +0100
***************
*** 4311,4323 ****
if (p != NULL)
get_bad_opt(p, &ea);
! if (dict_find(dict, (char_u *)"bin", -1) != NULL)
ea.force_bin = FORCE_BIN;
! if (dict_find(dict, (char_u *)"binary", -1) != NULL)
ea.force_bin = FORCE_BIN;
! if (dict_find(dict, (char_u *)"nobin", -1) != NULL)
ea.force_bin = FORCE_NOBIN;
! if (dict_find(dict, (char_u *)"nobinary", -1) != NULL)
ea.force_bin = FORCE_NOBIN;
}
--- 4311,4323 ----
if (p != NULL)
get_bad_opt(p, &ea);
! if (dict_has_key(dict, "bin"))
ea.force_bin = FORCE_BIN;
! if (dict_has_key(dict, "binary"))
ea.force_bin = FORCE_BIN;
! if (dict_has_key(dict, "nobin"))
ea.force_bin = FORCE_NOBIN;
! if (dict_has_key(dict, "nobinary"))
ea.force_bin = FORCE_NOBIN;
}
*** ../vim-8.2.4682/src/testing.c 2022-04-03 15:46:57.389502603 +0100
--- src/testing.c 2022-04-04 15:14:05.069617614 +0100
***************
*** 1285,1294 ****
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)
return FALSE;
(void)dict_get_tv(args, (char_u *)"files", &t);
--- 1285,1294 ----
list_T *l;
listitem_T *li;
! 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,1350 ****
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)
return FALSE;
find_text = dict_get_string(args, (char_u *)"find_text", TRUE);
--- 1341,1350 ----
int forward;
int retval;
! 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,1385 ****
int_u mods;
int move;
! if (dict_find(args, (char_u *)"row", -1) == NULL
! || dict_find(args, (char_u *)"col", -1) == NULL)
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))
return FALSE;
row = (int)dict_get_number(args, (char_u *)"row");
--- 1370,1385 ----
int_u mods;
int move;
! 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_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,1416 ****
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)
return FALSE;
which = dict_get_string(args, (char_u *)"which", FALSE);
--- 1408,1416 ----
int dragging;
scrollbar_T *sb = 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,1449 ****
# ifdef FEAT_GUI_TABLINE
int tabnr;
! if (dict_find(args, (char_u *)"tabnr", -1) == NULL)
return FALSE;
tabnr = (int)dict_get_number(args, (char_u *)"tabnr");
--- 1443,1449 ----
# ifdef FEAT_GUI_TABLINE
int tabnr;
! if (!dict_has_key(args, "tabnr"))
return FALSE;
tabnr = (int)dict_get_number(args, (char_u *)"tabnr");
***************
*** 1461,1468 ****
int tabnr;
int item;
! if (dict_find(args, (char_u *)"tabnr", -1) == NULL
! || dict_find(args, (char_u *)"item", -1) == NULL)
return FALSE;
tabnr = (int)dict_get_number(args, (char_u *)"tabnr");
--- 1461,1468 ----
int tabnr;
int item;
! if (!dict_has_key(args, "tabnr")
! || !dict_has_key(args, "item"))
return FALSE;
tabnr = (int)dict_get_number(args, (char_u *)"tabnr");
*** ../vim-8.2.4682/src/textprop.c 2022-01-05 20:24:34.280005633 +0000
--- src/textprop.c 2022-04-04 15:14:05.069617614 +0100
***************
*** 331,344 ****
}
dict = argvars[0].vval.v_dict;
! if (dict == NULL || dict_find(dict, (char_u *)"type", -1) == NULL)
{
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)
id = dict_get_number(dict, (char_u *)"id");
if (get_bufnr_from_arg(&argvars[0], &buf) == FAIL)
--- 331,344 ----
}
dict = argvars[0].vval.v_dict;
! 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_has_key(dict, "id"))
id = dict_get_number(dict, (char_u *)"id");
if (get_bufnr_from_arg(&argvars[0], &buf) == FAIL)
***************
*** 391,404 ****
buf_T *buf = default_buf;
int id = 0;
! if (dict == NULL || dict_find(dict, (char_u *)"type", -1) == NULL)
{
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)
{
end_lnum = dict_get_number(dict, (char_u *)"end_lnum");
if (end_lnum < start_lnum)
--- 391,404 ----
buf_T *buf = default_buf;
int id = 0;
! 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_has_key(dict, "end_lnum"))
{
end_lnum = dict_get_number(dict, (char_u *)"end_lnum");
if (end_lnum < start_lnum)
***************
*** 410,416 ****
else
end_lnum = start_lnum;
! if (dict_find(dict, (char_u *)"length", -1) != NULL)
{
long length = dict_get_number(dict, (char_u *)"length");
--- 410,416 ----
else
end_lnum = start_lnum;
! if (dict_has_key(dict, "length"))
{
long length = dict_get_number(dict, (char_u *)"length");
***************
*** 421,427 ****
}
end_col = start_col + length;
}
! else if (dict_find(dict, (char_u *)"end_col", -1) != NULL)
{
end_col = dict_get_number(dict, (char_u *)"end_col");
if (end_col <= 0)
--- 421,427 ----
}
end_col = start_col + length;
}
! else if (dict_has_key(dict, "end_col"))
{
end_col = dict_get_number(dict, (char_u *)"end_col");
if (end_col <= 0)
***************
*** 435,441 ****
else
end_col = 1;
! if (dict_find(dict, (char_u *)"id", -1) != NULL)
id = dict_get_number(dict, (char_u *)"id");
if (dict_arg != NULL && get_bufnr_from_arg(dict_arg, &buf) == FAIL)
--- 435,441 ----
else
end_col = 1;
! 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,788 ****
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");
id_found = TRUE;
}
! if (dict_find(dict, (char_u *)"type", -1))
{
char_u *name = dict_get_string(dict, (char_u *)"type", FALSE);
proptype_T *type = lookup_prop_type(name, buf);
--- 777,788 ----
skipstart = dict_get_bool(dict, (char_u *)"skipstart", 0);
! if (dict_has_key(dict, "id"))
{
id = dict_get_number(dict, (char_u *)"id");
id_found = TRUE;
}
! 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,1210 ****
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");
! if (dict_find(dict, (char_u *)"type", -1))
{
char_u *name = dict_get_string(dict, (char_u *)"type", FALSE);
proptype_T *type = lookup_prop_type(name, buf);
--- 1202,1210 ----
do_all = dict_get_bool(dict, (char_u *)"all", FALSE);
! if (dict_has_key(dict, "id"))
id = dict_get_number(dict, (char_u *)"id");
! 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);
*** ../vim-8.2.4682/src/time.c 2022-01-27 13:55:29.846840950 +0000
--- src/time.c 2022-04-04 15:14:05.069617614 +0100
***************
*** 848,854 ****
semsg(_(e_invalid_argument_str), tv_get_string(&argvars[2]));
return;
}
! if (dict_find(dict, (char_u *)"repeat", -1) != NULL)
repeat = dict_get_number(dict, (char_u *)"repeat");
}
--- 848,854 ----
semsg(_(e_invalid_argument_str), tv_get_string(&argvars[2]));
return;
}
! if (dict_has_key(dict, "repeat"))
repeat = dict_get_number(dict, (char_u *)"repeat");
}
*** ../vim-8.2.4682/src/version.c 2022-04-04 14:58:02.170539803 +0100
--- src/version.c 2022-04-04 15:16:07.381926360 +0100
***************
*** 752,753 ****
--- 752,755 ----
{ /* Add new patch number below this line */
+ /**/
+ 4683,
/**/
--
It is illegal for anyone to try and stop a child from playfully jumping over
puddles of water.
[real standing law in California, United States of America]
/// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net \\\
/// \\\
\\\ sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--
--
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php
---
You received this message because you are subscribed to the Google Groups
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/vim_dev/20220404141727.591651C0561%40moolenaar.net.