Mercurial > vim
comparison src/evalfunc.c @ 30043:fd855ad74887 v9.0.0359
patch 9.0.0359: error message for wrong argument type is not specific
Commit: https://github.com/vim/vim/commit/8deb2b30c77035bb682ccf80b781455ac1d6038b
Author: Yegappan Lakshmanan <yegappan@yahoo.com>
Date: Fri Sep 2 15:15:27 2022 +0100
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)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Fri, 02 Sep 2022 16:30:07 +0200 |
parents | adb0de8be4ce |
children | be5b8d4616b2 |
comparison
equal
deleted
inserted
replaced
30042:24d37e312b7b | 30043:fd855ad74887 |
---|---|
3605 static void | 3605 static void |
3606 f_deepcopy(typval_T *argvars, typval_T *rettv) | 3606 f_deepcopy(typval_T *argvars, typval_T *rettv) |
3607 { | 3607 { |
3608 varnumber_T noref = 0; | 3608 varnumber_T noref = 0; |
3609 | 3609 |
3610 if (in_vim9script() | 3610 if (check_for_opt_bool_arg(argvars, 1) == FAIL) |
3611 && (check_for_opt_bool_arg(argvars, 1) == FAIL)) | |
3612 return; | 3611 return; |
3613 | 3612 |
3614 if (argvars[1].v_type != VAR_UNKNOWN) | 3613 if (argvars[1].v_type != VAR_UNKNOWN) |
3615 noref = tv_get_bool_chk(&argvars[1], NULL); | 3614 noref = tv_get_bool_chk(&argvars[1], NULL); |
3616 if (noref < 0 || noref > 1) | 3615 |
3617 semsg(_(e_using_number_as_bool_nr), noref); | 3616 item_copy(&argvars[0], rettv, TRUE, TRUE, noref == 0 ? get_copyID() : 0); |
3618 else | |
3619 item_copy(&argvars[0], rettv, TRUE, TRUE, | |
3620 noref == 0 ? get_copyID() : 0); | |
3621 } | 3617 } |
3622 | 3618 |
3623 /* | 3619 /* |
3624 * "did_filetype()" function | 3620 * "did_filetype()" function |
3625 */ | 3621 */ |
5255 * "gettext()" function | 5251 * "gettext()" function |
5256 */ | 5252 */ |
5257 static void | 5253 static void |
5258 f_gettext(typval_T *argvars, typval_T *rettv) | 5254 f_gettext(typval_T *argvars, typval_T *rettv) |
5259 { | 5255 { |
5260 if (in_vim9script() && check_for_string_arg(argvars, 0) == FAIL) | 5256 if (check_for_nonempty_string_arg(argvars, 0) == FAIL) |
5261 return; | 5257 return; |
5262 | 5258 |
5263 if (argvars[0].v_type != VAR_STRING | 5259 rettv->v_type = VAR_STRING; |
5264 || argvars[0].vval.v_string == NULL | 5260 rettv->vval.v_string = vim_strsave((char_u *)_(argvars[0].vval.v_string)); |
5265 || *argvars[0].vval.v_string == NUL) | |
5266 { | |
5267 semsg(_(e_invalid_argument_str), tv_get_string(&argvars[0])); | |
5268 } | |
5269 else | |
5270 { | |
5271 rettv->v_type = VAR_STRING; | |
5272 rettv->vval.v_string = vim_strsave( | |
5273 (char_u *)_(argvars[0].vval.v_string)); | |
5274 } | |
5275 } | 5261 } |
5276 | 5262 |
5277 // for VIM_VERSION_ defines | 5263 // for VIM_VERSION_ defines |
5278 #include "version.h" | 5264 #include "version.h" |
5279 | 5265 |
9639 | 9625 |
9640 // third argument: action - 'a' for append and 'r' for replace. | 9626 // third argument: action - 'a' for append and 'r' for replace. |
9641 // default is to replace the stack. | 9627 // default is to replace the stack. |
9642 if (argvars[2].v_type == VAR_UNKNOWN) | 9628 if (argvars[2].v_type == VAR_UNKNOWN) |
9643 action = 'r'; | 9629 action = 'r'; |
9644 else if (argvars[2].v_type == VAR_STRING) | 9630 else if (check_for_string_arg(argvars, 2) == FAIL) |
9631 return; | |
9632 else | |
9645 { | 9633 { |
9646 char_u *actstr; | 9634 char_u *actstr; |
9647 actstr = tv_get_string_chk(&argvars[2]); | 9635 actstr = tv_get_string_chk(&argvars[2]); |
9648 if (actstr == NULL) | 9636 if (actstr == NULL) |
9649 return; | 9637 return; |
9653 else | 9641 else |
9654 { | 9642 { |
9655 semsg(_(e_invalid_action_str_2), actstr); | 9643 semsg(_(e_invalid_action_str_2), actstr); |
9656 return; | 9644 return; |
9657 } | 9645 } |
9658 } | |
9659 else | |
9660 { | |
9661 emsg(_(e_string_required)); | |
9662 return; | |
9663 } | 9646 } |
9664 | 9647 |
9665 if (set_tagstack(wp, d, action) == OK) | 9648 if (set_tagstack(wp, d, action) == OK) |
9666 rettv->vval.v_number = 0; | 9649 rettv->vval.v_number = 0; |
9667 } | 9650 } |