patch 9.0.0359: error message for wrong argument type is not specific
Problem: Error message for wrong argument type is not specific.
Solution: Include more information in the error. (Yegappan Lakshmanan,
closes #11037)
diff --git a/src/blob.c b/src/blob.c
index 0d88c75..cfc3d37 100644
--- a/src/blob.c
+++ b/src/blob.c
@@ -667,11 +667,8 @@
initial.vval.v_number = blob_get(b, 0);
i = 1;
}
- else if (argvars[2].v_type != VAR_NUMBER)
- {
- emsg(_(e_number_expected));
+ else if (check_for_number_arg(argvars, 2) == FAIL)
return;
- }
else
{
initial = argvars[2];
diff --git a/src/cmdexpand.c b/src/cmdexpand.c
index bfa3053..57bf47a 100644
--- a/src/cmdexpand.c
+++ b/src/cmdexpand.c
@@ -3679,11 +3679,8 @@
return;
pat = tv_get_string(&argvars[0]);
- if (argvars[1].v_type != VAR_STRING)
- {
- semsg(_(e_invalid_argument_str), "type must be a string");
+ if (check_for_string_arg(argvars, 1) == FAIL)
return;
- }
type = tv_get_string(&argvars[1]);
if (argvars[2].v_type != VAR_UNKNOWN)
diff --git a/src/evalfunc.c b/src/evalfunc.c
index c7cf322..7c122e1 100644
--- a/src/evalfunc.c
+++ b/src/evalfunc.c
@@ -3607,17 +3607,13 @@
{
varnumber_T noref = 0;
- if (in_vim9script()
- && (check_for_opt_bool_arg(argvars, 1) == FAIL))
+ if (check_for_opt_bool_arg(argvars, 1) == FAIL)
return;
if (argvars[1].v_type != VAR_UNKNOWN)
noref = tv_get_bool_chk(&argvars[1], NULL);
- if (noref < 0 || noref > 1)
- semsg(_(e_using_number_as_bool_nr), noref);
- else
- item_copy(&argvars[0], rettv, TRUE, TRUE,
- noref == 0 ? get_copyID() : 0);
+
+ item_copy(&argvars[0], rettv, TRUE, TRUE, noref == 0 ? get_copyID() : 0);
}
/*
@@ -5257,21 +5253,11 @@
static void
f_gettext(typval_T *argvars, typval_T *rettv)
{
- if (in_vim9script() && check_for_string_arg(argvars, 0) == FAIL)
+ if (check_for_nonempty_string_arg(argvars, 0) == FAIL)
return;
- if (argvars[0].v_type != VAR_STRING
- || argvars[0].vval.v_string == NULL
- || *argvars[0].vval.v_string == NUL)
- {
- semsg(_(e_invalid_argument_str), tv_get_string(&argvars[0]));
- }
- else
- {
- rettv->v_type = VAR_STRING;
- rettv->vval.v_string = vim_strsave(
- (char_u *)_(argvars[0].vval.v_string));
- }
+ rettv->v_type = VAR_STRING;
+ rettv->vval.v_string = vim_strsave((char_u *)_(argvars[0].vval.v_string));
}
// for VIM_VERSION_ defines
@@ -9641,7 +9627,9 @@
// default is to replace the stack.
if (argvars[2].v_type == VAR_UNKNOWN)
action = 'r';
- else if (argvars[2].v_type == VAR_STRING)
+ else if (check_for_string_arg(argvars, 2) == FAIL)
+ return;
+ else
{
char_u *actstr;
actstr = tv_get_string_chk(&argvars[2]);
@@ -9656,11 +9644,6 @@
return;
}
}
- else
- {
- emsg(_(e_string_required));
- return;
- }
if (set_tagstack(wp, d, action) == OK)
rettv->vval.v_number = 0;
diff --git a/src/popupwin.c b/src/popupwin.c
index 8688f3e..5f00380 100644
--- a/src/popupwin.c
+++ b/src/popupwin.c
@@ -2769,9 +2769,7 @@
wp = find_popup_win(id);
if (wp != NULL)
{
- if (argvars[1].v_type != VAR_STRING && argvars[1].v_type != VAR_LIST)
- semsg(_(e_invalid_argument_str), tv_get_string(&argvars[1]));
- else
+ if (check_for_string_or_list_arg(argvars, 1) != FAIL)
{
popup_set_buffer_text(wp->w_buffer, argvars[1]);
redraw_win_later(wp, UPD_NOT_VALID);
diff --git a/src/sign.c b/src/sign.c
index eaefd5f..1073e65 100644
--- a/src/sign.c
+++ b/src/sign.c
@@ -2849,23 +2849,12 @@
rettv->vval.v_number = -1;
- if (in_vim9script()
- && (check_for_string_arg(argvars, 0) == FAIL
+ if ((check_for_string_arg(argvars, 0) == FAIL
|| check_for_opt_dict_arg(argvars, 1) == FAIL))
return;
- if (argvars[0].v_type != VAR_STRING)
- {
- emsg(_(e_invalid_argument));
- return;
- }
-
if (argvars[1].v_type != VAR_UNKNOWN)
- {
- if (check_for_dict_arg(argvars, 1) == FAIL)
- return;
dict = argvars[1].vval.v_dict;
- }
rettv->vval.v_number = sign_unplace_from_dict(&argvars[0], dict);
}
diff --git a/src/strings.c b/src/strings.c
index 0313e74..55ee69a 100644
--- a/src/strings.c
+++ b/src/strings.c
@@ -960,11 +960,8 @@
return;
p += STRLEN(rettv->vval.v_string);
}
- else if (argvars[2].v_type != VAR_STRING)
- {
- semsg(_(e_string_expected_for_argument_nr), 3);
+ else if (check_for_string_arg(argvars, 2) == FAIL)
return;
- }
else
copy_tv(&argvars[2], rettv);
@@ -1047,21 +1044,11 @@
rettv->vval.v_number = -1;
- if (in_vim9script()
- && (check_for_string_arg(argvars, 0) == FAIL
+ if ((check_for_string_arg(argvars, 0) == FAIL
|| check_for_number_arg(argvars, 1) == FAIL
|| check_for_opt_bool_arg(argvars, 2) == FAIL))
return;
- if (argvars[0].v_type != VAR_STRING || argvars[1].v_type != VAR_NUMBER
- || (argvars[2].v_type != VAR_UNKNOWN
- && argvars[2].v_type != VAR_NUMBER
- && argvars[2].v_type != VAR_BOOL))
- {
- emsg(_(e_invalid_argument));
- return;
- }
-
str = tv_get_string_chk(&argvars[0]);
idx = tv_get_number_chk(&argvars[1], NULL);
if (str == NULL || idx < 0)
@@ -1783,11 +1770,8 @@
if (head == NULL)
return;
- if (argvars[1].v_type != VAR_UNKNOWN && argvars[1].v_type != VAR_STRING)
- {
- semsg(_(e_invalid_argument_str), tv_get_string(&argvars[1]));
+ if (check_for_opt_string_arg(argvars, 1) == FAIL)
return;
- }
if (argvars[1].v_type == VAR_STRING)
{
diff --git a/src/testdir/test_assert.vim b/src/testdir/test_assert.vim
index 7c9d090..f11a3a9 100644
--- a/src/testdir/test_assert.vim
+++ b/src/testdir/test_assert.vim
@@ -368,7 +368,7 @@
eval 1->test_override('redraw')
call test_override('ALL', 0)
call assert_fails("call test_override('xxx', 1)", 'E475:')
- call assert_fails("call test_override('redraw', 'yes')", 'E474:')
+ call assert_fails("call test_override('redraw', 'yes')", 'E1210:')
endfunc
func Test_mouse_position()
diff --git a/src/testdir/test_cmdline.vim b/src/testdir/test_cmdline.vim
index bec0f5f..335e756 100644
--- a/src/testdir/test_cmdline.vim
+++ b/src/testdir/test_cmdline.vim
@@ -605,7 +605,7 @@
call assert_fails("call getcompletion('\\\\@!\\\\@=', 'buffer')", 'E871:')
call assert_fails('call getcompletion("", "burp")', 'E475:')
- call assert_fails('call getcompletion("abc", [])', 'E475:')
+ call assert_fails('call getcompletion("abc", [])', 'E1174:')
endfunc
" Test for getcompletion() with "fuzzy" in 'wildoptions'
diff --git a/src/testdir/test_functions.vim b/src/testdir/test_functions.vim
index 43eb265..e05268a 100644
--- a/src/testdir/test_functions.vim
+++ b/src/testdir/test_functions.vim
@@ -1247,11 +1247,11 @@
call assert_equal(-1, charidx(a, 8, 1))
call assert_equal(-1, charidx('', 0, 1))
- call assert_fails('let x = charidx([], 1)', 'E474:')
- call assert_fails('let x = charidx("abc", [])', 'E474:')
- call assert_fails('let x = charidx("abc", 1, [])', 'E474:')
- call assert_fails('let x = charidx("abc", 1, -1)', 'E1023:')
- call assert_fails('let x = charidx("abc", 1, 2)', 'E1023:')
+ call assert_fails('let x = charidx([], 1)', 'E1174:')
+ call assert_fails('let x = charidx("abc", [])', 'E1210:')
+ call assert_fails('let x = charidx("abc", 1, [])', 'E1212:')
+ call assert_fails('let x = charidx("abc", 1, -1)', 'E1212:')
+ call assert_fails('let x = charidx("abc", 1, 2)', 'E1212:')
endfunc
func Test_count()
@@ -1738,7 +1738,7 @@
call assert_fails('eval trim(" vim ", " ", [])', 'E745:')
call assert_fails('eval trim(" vim ", " ", -1)', 'E475:')
call assert_fails('eval trim(" vim ", " ", 3)', 'E475:')
- call assert_fails('eval trim(" vim ", 0)', 'E475:')
+ call assert_fails('eval trim(" vim ", 0)', 'E1174:')
let chars = join(map(range(1, 0x20) + [0xa0], {n -> n->nr2char()}), '')
call assert_equal("x", trim(chars . "x" . chars))
@@ -2913,7 +2913,7 @@
" Test for gettext()
func Test_gettext()
- call assert_fails('call gettext(1)', 'E475:')
+ call assert_fails('call gettext(1)', 'E1174:')
endfunc
func Test_builtin_check()
diff --git a/src/testdir/test_listdict.vim b/src/testdir/test_listdict.vim
index 154aa98..bf3117b 100644
--- a/src/testdir/test_listdict.vim
+++ b/src/testdir/test_listdict.vim
@@ -568,7 +568,7 @@
END
call v9.CheckLegacyAndVim9Success(lines)
- call assert_fails("call deepcopy([1, 2], 2)", 'E1023:')
+ call assert_fails("call deepcopy([1, 2], 2)", 'E1212:')
endfunc
" Locked variables
@@ -1044,16 +1044,16 @@
call assert_fails("call reduce({}, { acc, val -> acc + val }, 1)", 'E1098:')
call assert_fails("call reduce(0, { acc, val -> acc + val }, 1)", 'E1098:')
call assert_fails("call reduce([1, 2], 'Xdoes_not_exist')", 'E117:')
- call assert_fails("echo reduce(0z01, { acc, val -> 2 * acc + val }, '')", 'E39:')
+ call assert_fails("echo reduce(0z01, { acc, val -> 2 * acc + val }, '')", 'E1210:')
call assert_fails("vim9 reduce(0, (acc, val) => (acc .. val), '')", 'E1252:')
call assert_fails("vim9 reduce({}, (acc, val) => (acc .. val), '')", 'E1252:')
call assert_fails("vim9 reduce(0.1, (acc, val) => (acc .. val), '')", 'E1252:')
call assert_fails("vim9 reduce(function('tr'), (acc, val) => (acc .. val), '')", 'E1252:')
- call assert_fails("call reduce('', { acc, val -> acc + val }, 1)", 'E1253:')
- call assert_fails("call reduce('', { acc, val -> acc + val }, {})", 'E1253:')
- call assert_fails("call reduce('', { acc, val -> acc + val }, 0.1)", 'E1253:')
- call assert_fails("call reduce('', { acc, val -> acc + val }, function('tr'))", 'E1253:')
+ call assert_fails("call reduce('', { acc, val -> acc + val }, 1)", 'E1174:')
+ call assert_fails("call reduce('', { acc, val -> acc + val }, {})", 'E1174:')
+ call assert_fails("call reduce('', { acc, val -> acc + val }, 0.1)", 'E1174:')
+ call assert_fails("call reduce('', { acc, val -> acc + val }, function('tr'))", 'E1174:')
call assert_fails("call reduce('abc', { a, v -> a10}, '')", 'E121:')
call assert_fails("call reduce(0z0102, { a, v -> a10}, 1)", 'E121:')
call assert_fails("call reduce([1, 2], { a, v -> a10}, '')", 'E121:')
diff --git a/src/testdir/test_signs.vim b/src/testdir/test_signs.vim
index e2387b2..790d9b4 100644
--- a/src/testdir/test_signs.vim
+++ b/src/testdir/test_signs.vim
@@ -686,7 +686,7 @@
call assert_equal([], sign_getplaced(bnum, {'group' : '*'})[0].signs)
" Error case
- call assert_fails("call sign_unplace({})", 'E474:')
+ call assert_fails("call sign_unplace({})", 'E1174:')
" Place a sign in the global group and try to delete it using a group
call assert_equal(5, sign_place(5, '', 'sign1', bnum, {'lnum' : 10}))
diff --git a/src/testdir/test_tagjump.vim b/src/testdir/test_tagjump.vim
index cca907f..81606fc 100644
--- a/src/testdir/test_tagjump.vim
+++ b/src/testdir/test_tagjump.vim
@@ -405,7 +405,7 @@
call assert_equal(-1, settagstack(100, {'items' : []}))
call assert_fails('call settagstack(1, [1, 10])', 'E1206:')
call assert_fails("call settagstack(1, {'items' : 10})", 'E714:')
- call assert_fails("call settagstack(1, {'items' : []}, 10)", 'E928:')
+ call assert_fails("call settagstack(1, {'items' : []}, 10)", 'E1174:')
call assert_fails("call settagstack(1, {'items' : []}, 'b')", 'E962:')
call assert_equal(-1, settagstack(0, test_null_dict()))
diff --git a/src/testdir/test_timers.vim b/src/testdir/test_timers.vim
index 85e76eb..2625013 100644
--- a/src/testdir/test_timers.vim
+++ b/src/testdir/test_timers.vim
@@ -116,7 +116,7 @@
call timer_stop(id)
call assert_equal([], timer_info(id))
- call assert_fails('call timer_info("abc")', 'E39:')
+ call assert_fails('call timer_info("abc")', 'E1210:')
" check repeat count inside the callback
let g:timer_repeat = []
@@ -267,7 +267,7 @@
call assert_fails('call timer_start(100, "MyHandler", "abc")', 'E1206:')
call assert_fails('call timer_start(100, [])', 'E921:')
- call assert_fails('call timer_stop("abc")', 'E39:')
+ call assert_fails('call timer_stop("abc")', 'E1210:')
endfunc
func FuncWithCaughtError(timer)
diff --git a/src/testdir/test_vim9_builtin.vim b/src/testdir/test_vim9_builtin.vim
index 13f87cb..b74a8ec 100644
--- a/src/testdir/test_vim9_builtin.vim
+++ b/src/testdir/test_vim9_builtin.vim
@@ -1961,9 +1961,9 @@
def Test_gettext()
v9.CheckDefAndScriptFailure(['gettext(10)'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
- v9.CheckDefExecAndScriptFailure(['gettext("")'], 'E475: Invalid argument')
+ v9.CheckDefExecAndScriptFailure(['gettext("")'], 'E1175: Non-empty string required for argument 1')
assert_equal('abc', gettext("abc"))
- assert_fails('gettext("")', 'E475:')
+ assert_fails('gettext("")', 'E1175:')
enddef
def Test_getwininfo()
diff --git a/src/testing.c b/src/testing.c
index 21eb9c1..8c682cf 100644
--- a/src/testing.c
+++ b/src/testing.c
@@ -970,20 +970,17 @@
void
f_test_getvalue(typval_T *argvars, typval_T *rettv)
{
- if (in_vim9script() && check_for_string_arg(argvars, 0) == FAIL)
+ char_u *name;
+
+ if (check_for_string_arg(argvars, 0) == FAIL)
return;
- if (argvars[0].v_type != VAR_STRING)
- emsg(_(e_invalid_argument));
- else
- {
- char_u *name = tv_get_string(&argvars[0]);
+ name = tv_get_string(&argvars[0]);
- if (STRCMP(name, (char_u *)"need_fileinfo") == 0)
- rettv->vval.v_number = need_fileinfo;
- else
- semsg(_(e_invalid_argument_str), name);
- }
+ if (STRCMP(name, (char_u *)"need_fileinfo") == 0)
+ rettv->vval.v_number = need_fileinfo;
+ else
+ semsg(_(e_invalid_argument_str), name);
}
/*
@@ -994,17 +991,12 @@
{
char_u *name = (char_u *)"";
- if (in_vim9script() && check_for_string_arg(argvars, 0) == FAIL)
+ if (check_for_string_arg(argvars, 0) == FAIL)
return;
- if (argvars[0].v_type != VAR_STRING)
- emsg(_(e_invalid_argument));
- else
- {
- name = tv_get_string(&argvars[0]);
- if (reset_option_was_set(name) == FAIL)
- semsg(_(e_invalid_argument_str), name);
- }
+ name = tv_get_string(&argvars[0]);
+ if (reset_option_was_set(name) == FAIL)
+ semsg(_(e_invalid_argument_str), name);
}
/*
@@ -1017,77 +1009,70 @@
int val;
static int save_starting = -1;
- if (in_vim9script()
- && (check_for_string_arg(argvars, 0) == FAIL
- || check_for_number_arg(argvars, 1) == FAIL))
+ if (check_for_string_arg(argvars, 0) == FAIL
+ || check_for_number_arg(argvars, 1) == FAIL)
return;
- if (argvars[0].v_type != VAR_STRING
- || (argvars[1].v_type) != VAR_NUMBER)
- emsg(_(e_invalid_argument));
- else
- {
- name = tv_get_string(&argvars[0]);
- val = (int)tv_get_number(&argvars[1]);
+ name = tv_get_string(&argvars[0]);
+ val = (int)tv_get_number(&argvars[1]);
- if (STRCMP(name, (char_u *)"redraw") == 0)
- disable_redraw_for_testing = val;
- else if (STRCMP(name, (char_u *)"redraw_flag") == 0)
- ignore_redraw_flag_for_testing = val;
- else if (STRCMP(name, (char_u *)"char_avail") == 0)
- disable_char_avail_for_testing = val;
- else if (STRCMP(name, (char_u *)"starting") == 0)
+ if (STRCMP(name, (char_u *)"redraw") == 0)
+ disable_redraw_for_testing = val;
+ else if (STRCMP(name, (char_u *)"redraw_flag") == 0)
+ ignore_redraw_flag_for_testing = val;
+ else if (STRCMP(name, (char_u *)"char_avail") == 0)
+ disable_char_avail_for_testing = val;
+ else if (STRCMP(name, (char_u *)"starting") == 0)
+ {
+ if (val)
{
- if (val)
- {
- if (save_starting < 0)
- save_starting = starting;
- starting = 0;
- }
- else
- {
- starting = save_starting;
- save_starting = -1;
- }
- }
- else if (STRCMP(name, (char_u *)"nfa_fail") == 0)
- nfa_fail_for_testing = val;
- else if (STRCMP(name, (char_u *)"no_query_mouse") == 0)
- no_query_mouse_for_testing = val;
- else if (STRCMP(name, (char_u *)"no_wait_return") == 0)
- no_wait_return = val;
- else if (STRCMP(name, (char_u *)"ui_delay") == 0)
- ui_delay_for_testing = val;
- else if (STRCMP(name, (char_u *)"term_props") == 0)
- reset_term_props_on_termresponse = val;
- else if (STRCMP(name, (char_u *)"vterm_title") == 0)
- disable_vterm_title_for_testing = val;
- else if (STRCMP(name, (char_u *)"uptime") == 0)
- override_sysinfo_uptime = val;
- else if (STRCMP(name, (char_u *)"alloc_lines") == 0)
- ml_get_alloc_lines = val;
- else if (STRCMP(name, (char_u *)"autoload") == 0)
- override_autoload = val;
- else if (STRCMP(name, (char_u *)"ALL") == 0)
- {
- disable_char_avail_for_testing = FALSE;
- disable_redraw_for_testing = FALSE;
- ignore_redraw_flag_for_testing = FALSE;
- nfa_fail_for_testing = FALSE;
- no_query_mouse_for_testing = FALSE;
- ui_delay_for_testing = 0;
- reset_term_props_on_termresponse = FALSE;
- override_sysinfo_uptime = -1;
- // ml_get_alloc_lines is not reset by "ALL"
- if (save_starting >= 0)
- {
- starting = save_starting;
- save_starting = -1;
- }
+ if (save_starting < 0)
+ save_starting = starting;
+ starting = 0;
}
else
- semsg(_(e_invalid_argument_str), name);
+ {
+ starting = save_starting;
+ save_starting = -1;
+ }
}
+ else if (STRCMP(name, (char_u *)"nfa_fail") == 0)
+ nfa_fail_for_testing = val;
+ else if (STRCMP(name, (char_u *)"no_query_mouse") == 0)
+ no_query_mouse_for_testing = val;
+ else if (STRCMP(name, (char_u *)"no_wait_return") == 0)
+ no_wait_return = val;
+ else if (STRCMP(name, (char_u *)"ui_delay") == 0)
+ ui_delay_for_testing = val;
+ else if (STRCMP(name, (char_u *)"term_props") == 0)
+ reset_term_props_on_termresponse = val;
+ else if (STRCMP(name, (char_u *)"vterm_title") == 0)
+ disable_vterm_title_for_testing = val;
+ else if (STRCMP(name, (char_u *)"uptime") == 0)
+ override_sysinfo_uptime = val;
+ else if (STRCMP(name, (char_u *)"alloc_lines") == 0)
+ ml_get_alloc_lines = val;
+ else if (STRCMP(name, (char_u *)"autoload") == 0)
+ override_autoload = val;
+ else if (STRCMP(name, (char_u *)"ALL") == 0)
+ {
+ disable_char_avail_for_testing = FALSE;
+ disable_redraw_for_testing = FALSE;
+ ignore_redraw_flag_for_testing = FALSE;
+ nfa_fail_for_testing = FALSE;
+ no_query_mouse_for_testing = FALSE;
+ ui_delay_for_testing = 0;
+ reset_term_props_on_termresponse = FALSE;
+ override_sysinfo_uptime = -1;
+ // ml_get_alloc_lines is not reset by "ALL"
+ if (save_starting >= 0)
+ {
+ starting = save_starting;
+ save_starting = -1;
+ }
+ }
+ else
+ semsg(_(e_invalid_argument_str), name);
}
/*
@@ -1184,13 +1169,10 @@
void
f_test_ignore_error(typval_T *argvars, typval_T *rettv UNUSED)
{
- if (in_vim9script() && check_for_string_arg(argvars, 0) == FAIL)
+ if (check_for_string_arg(argvars, 0) == FAIL)
return;
- if (argvars[0].v_type != VAR_STRING)
- emsg(_(e_invalid_argument));
- else
- ignore_error_for_testing(tv_get_string(&argvars[0]));
+ ignore_error_for_testing(tv_get_string(&argvars[0]));
}
void
@@ -1271,7 +1253,7 @@
|| check_for_number_arg(argvars, 1) == FAIL))
return;
- if (argvars[0].v_type != VAR_NUMBER || (argvars[1].v_type) != VAR_NUMBER)
+ if (argvars[0].v_type != VAR_NUMBER || argvars[1].v_type != VAR_NUMBER)
{
emsg(_(e_invalid_argument));
return;
diff --git a/src/time.c b/src/time.c
index d97c56e..58337c9 100644
--- a/src/time.c
+++ b/src/time.c
@@ -805,19 +805,14 @@
if (rettv_list_alloc(rettv) == FAIL)
return;
- if (in_vim9script() && check_for_opt_number_arg(argvars, 0) == FAIL)
+ if (check_for_opt_number_arg(argvars, 0) == FAIL)
return;
if (argvars[0].v_type != VAR_UNKNOWN)
{
- if (argvars[0].v_type != VAR_NUMBER)
- emsg(_(e_number_expected));
- else
- {
- timer = find_timer((int)tv_get_number(&argvars[0]));
- if (timer != NULL)
- add_timer_info(rettv, timer);
- }
+ timer = find_timer((int)tv_get_number(&argvars[0]));
+ if (timer != NULL)
+ add_timer_info(rettv, timer);
}
else
add_timer_info_all(rettv);
@@ -909,14 +904,9 @@
{
timer_T *timer;
- if (in_vim9script() && check_for_number_arg(argvars, 0) == FAIL)
+ if (check_for_number_arg(argvars, 0) == FAIL)
return;
- if (argvars[0].v_type != VAR_NUMBER)
- {
- emsg(_(e_number_expected));
- return;
- }
timer = find_timer((int)tv_get_number(&argvars[0]));
if (timer != NULL)
stop_timer(timer);
diff --git a/src/version.c b/src/version.c
index 202c46d..fa2d9d5 100644
--- a/src/version.c
+++ b/src/version.c
@@ -708,6 +708,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 359,
+/**/
358,
/**/
357,