diff options
Diffstat (limited to 'src/sign.c')
-rw-r--r-- | src/sign.c | 26 |
1 files changed, 8 insertions, 18 deletions
diff --git a/src/sign.c b/src/sign.c index 1e36074cc5..e0264ccb1b 100644 --- a/src/sign.c +++ b/src/sign.c @@ -2349,11 +2349,8 @@ f_sign_define(typval_T *argvars, typval_T *rettv) if (name == NULL) return; - if (argvars[1].v_type != VAR_UNKNOWN && argvars[1].v_type != VAR_DICT) - { - emsg(_(e_dictionary_required)); + if (check_for_opt_dict_arg(argvars, 1) == FAIL) return; - } rettv->vval.v_number = sign_define_from_dict(name, argvars[1].v_type == VAR_DICT ? argvars[1].vval.v_dict : NULL); @@ -2411,12 +2408,9 @@ f_sign_getplaced(typval_T *argvars, typval_T *rettv) if (argvars[1].v_type != VAR_UNKNOWN) { - if (argvars[1].v_type != VAR_DICT || - ((dict = argvars[1].vval.v_dict) == NULL)) - { - emsg(_(e_dictionary_required)); + if (check_for_nonnull_dict_arg(argvars, 1) == FAIL) return; - } + dict = argvars[1].vval.v_dict; if ((di = dict_find(dict, (char_u *)"lnum", -1)) != NULL) { // get signs placed at this line @@ -2640,12 +2634,11 @@ f_sign_place(typval_T *argvars, typval_T *rettv) || check_for_opt_dict_arg(argvars, 4) == FAIL)) return; - if (argvars[4].v_type != VAR_UNKNOWN - && (argvars[4].v_type != VAR_DICT - || ((dict = argvars[4].vval.v_dict) == NULL))) + if (argvars[4].v_type != VAR_UNKNOWN) { - emsg(_(e_dictionary_required)); - return; + if (check_for_nonnull_dict_arg(argvars, 4) == FAIL) + return; + dict = argvars[4].vval.v_dict; } rettv->vval.v_number = sign_place_from_dict(&argvars[0], &argvars[1], @@ -2872,11 +2865,8 @@ f_sign_unplace(typval_T *argvars, typval_T *rettv) if (argvars[1].v_type != VAR_UNKNOWN) { - if (argvars[1].v_type != VAR_DICT) - { - emsg(_(e_dictionary_required)); + if (check_for_dict_arg(argvars, 1) == FAIL) return; - } dict = argvars[1].vval.v_dict; } |