Mercurial > vim
comparison src/evalfunc.c @ 28283:2fd2ce8a556c v8.2.4667
patch 8.2.4667: expandcmd() fails on an error
Commit: https://github.com/vim/vim/commit/5018a836c030988944a9bbe2fd2e538bf5261a72
Author: Yegappan Lakshmanan <yegappan@yahoo.com>
Date: Sat Apr 2 21:12:21 2022 +0100
patch 8.2.4667: expandcmd() fails on an error
Problem: expandcmd() fails on an error.
Solution: On failure return the command unmodified. (yegappan Lakshmanan,
closes #10063)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sat, 02 Apr 2022 22:15:03 +0200 |
parents | c724906134a3 |
children | dc68c111cf7a |
comparison
equal
deleted
inserted
replaced
28282:548b4ab77157 | 28283:2fd2ce8a556c |
---|---|
4166 eap.argt |= EX_NOSPC; | 4166 eap.argt |= EX_NOSPC; |
4167 eap.usefilter = FALSE; | 4167 eap.usefilter = FALSE; |
4168 eap.nextcmd = NULL; | 4168 eap.nextcmd = NULL; |
4169 eap.cmdidx = CMD_USER; | 4169 eap.cmdidx = CMD_USER; |
4170 | 4170 |
4171 ++emsg_off; | |
4171 expand_filename(&eap, &cmdstr, &errormsg); | 4172 expand_filename(&eap, &cmdstr, &errormsg); |
4172 if (errormsg != NULL && *errormsg != NUL) | 4173 --emsg_off; |
4173 emsg(errormsg); | |
4174 | 4174 |
4175 rettv->vval.v_string = cmdstr; | 4175 rettv->vval.v_string = cmdstr; |
4176 } | 4176 } |
4177 | 4177 |
4178 /* | 4178 /* |
4442 list = argvars[arg_idx].vval.v_list; | 4442 list = argvars[arg_idx].vval.v_list; |
4443 if (list == NULL || list->lv_len == 0) | 4443 if (list == NULL || list->lv_len == 0) |
4444 arg_idx = 0; | 4444 arg_idx = 0; |
4445 else if (list->lv_len > MAX_FUNC_ARGS) | 4445 else if (list->lv_len > MAX_FUNC_ARGS) |
4446 { | 4446 { |
4447 emsg_funcname((char *)e_too_many_arguments_for_function_str, | 4447 emsg_funcname(e_too_many_arguments_for_function_str, s); |
4448 s); | |
4449 vim_free(name); | 4448 vim_free(name); |
4450 goto theend; | 4449 goto theend; |
4451 } | 4450 } |
4452 } | 4451 } |
4453 } | 4452 } |