summaryrefslogtreecommitdiffstats
path: root/src/evalwindow.c
diff options
context:
space:
mode:
authorYegappan Lakshmanan <yegappan@yahoo.com>2022-08-30 19:48:24 +0100
committerBram Moolenaar <Bram@vim.org>2022-08-30 19:48:24 +0100
commit04c4c5746e15884768d2cb41370c3276a196cd4c (patch)
tree1e629820796635bd332b2066c03d548fad527f89 /src/evalwindow.c
parentf240395fca63d4b330112a4b81e94b05b50de1aa (diff)
patch 9.0.0335: checks for Dictionary argument often give a vague errorv9.0.0335
Problem: Checks for Dictionary argument often give a vague error message. Solution: Give a useful error message. (Yegappan Lakshmanan, closes #11009)
Diffstat (limited to 'src/evalwindow.c')
-rw-r--r--src/evalwindow.c72
1 files changed, 32 insertions, 40 deletions
diff --git a/src/evalwindow.c b/src/evalwindow.c
index d507ab3677..906c269789 100644
--- a/src/evalwindow.c
+++ b/src/evalwindow.c
@@ -1009,11 +1009,8 @@ f_win_splitmove(typval_T *argvars, typval_T *rettv)
dict_T *d;
dictitem_T *di;
- if (argvars[2].v_type != VAR_DICT || argvars[2].vval.v_dict == NULL)
- {
- emsg(_(e_invalid_argument));
+ if (check_for_nonnull_dict_arg(argvars, 2) == FAIL)
return;
- }
d = argvars[2].vval.v_dict;
if (dict_get_bool(d, "vertical", FALSE))
@@ -1227,50 +1224,45 @@ f_winrestview(typval_T *argvars, typval_T *rettv UNUSED)
{
dict_T *dict;
- if (in_vim9script() && check_for_dict_arg(argvars, 0) == FAIL)
+ if (check_for_nonnull_dict_arg(argvars, 0) == FAIL)
return;
- if (argvars[0].v_type != VAR_DICT
- || (dict = argvars[0].vval.v_dict) == NULL)
- emsg(_(e_invalid_argument));
- else
+ dict = argvars[0].vval.v_dict;
+ if (dict_has_key(dict, "lnum"))
+ curwin->w_cursor.lnum = (linenr_T)dict_get_number(dict, "lnum");
+ if (dict_has_key(dict, "col"))
+ curwin->w_cursor.col = (colnr_T)dict_get_number(dict, "col");
+ if (dict_has_key(dict, "coladd"))
+ curwin->w_cursor.coladd = (colnr_T)dict_get_number(dict, "coladd");
+ if (dict_has_key(dict, "curswant"))
{
- if (dict_has_key(dict, "lnum"))
- curwin->w_cursor.lnum = (linenr_T)dict_get_number(dict, "lnum");
- if (dict_has_key(dict, "col"))
- curwin->w_cursor.col = (colnr_T)dict_get_number(dict, "col");
- if (dict_has_key(dict, "coladd"))
- curwin->w_cursor.coladd = (colnr_T)dict_get_number(dict, "coladd");
- if (dict_has_key(dict, "curswant"))
- {
- curwin->w_curswant = (colnr_T)dict_get_number(dict, "curswant");
- curwin->w_set_curswant = FALSE;
- }
+ curwin->w_curswant = (colnr_T)dict_get_number(dict, "curswant");
+ curwin->w_set_curswant = FALSE;
+ }
- if (dict_has_key(dict, "topline"))
- set_topline(curwin, (linenr_T)dict_get_number(dict, "topline"));
+ if (dict_has_key(dict, "topline"))
+ set_topline(curwin, (linenr_T)dict_get_number(dict, "topline"));
#ifdef FEAT_DIFF
- if (dict_has_key(dict, "topfill"))
- curwin->w_topfill = (int)dict_get_number(dict, "topfill");
+ if (dict_has_key(dict, "topfill"))
+ curwin->w_topfill = (int)dict_get_number(dict, "topfill");
#endif
- if (dict_has_key(dict, "leftcol"))
- curwin->w_leftcol = (colnr_T)dict_get_number(dict, "leftcol");
- if (dict_has_key(dict, "skipcol"))
- curwin->w_skipcol = (colnr_T)dict_get_number(dict, "skipcol");
-
- check_cursor();
- win_new_height(curwin, curwin->w_height);
- win_new_width(curwin, curwin->w_width);
- changed_window_setting();
-
- if (curwin->w_topline <= 0)
- curwin->w_topline = 1;
- if (curwin->w_topline > curbuf->b_ml.ml_line_count)
- curwin->w_topline = curbuf->b_ml.ml_line_count;
+ if (dict_has_key(dict, "leftcol"))
+ curwin->w_leftcol = (colnr_T)dict_get_number(dict, "leftcol");
+ if (dict_has_key(dict, "skipcol"))
+ curwin->w_skipcol = (colnr_T)dict_get_number(dict, "skipcol");
+
+ check_cursor();
+ win_new_height(curwin, curwin->w_height);
+ win_new_width(curwin, curwin->w_width);
+ changed_window_setting();
+
+ if (curwin->w_topline <= 0)
+ curwin->w_topline = 1;
+ if (curwin->w_topline > curbuf->b_ml.ml_line_count)
+ curwin->w_topline = curbuf->b_ml.ml_line_count;
#ifdef FEAT_DIFF
- check_topfill(curwin, TRUE);
+ check_topfill(curwin, TRUE);
#endif
- }
}
/*