diff options
Diffstat (limited to 'src/strings.c')
-rw-r--r-- | src/strings.c | 22 |
1 files changed, 3 insertions, 19 deletions
diff --git a/src/strings.c b/src/strings.c index 0313e7480e..55ee69ab11 100644 --- a/src/strings.c +++ b/src/strings.c @@ -960,11 +960,8 @@ string_reduce( 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 @@ f_charidx(typval_T *argvars, typval_T *rettv) 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 @@ f_trim(typval_T *argvars, typval_T *rettv) 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) { |