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 }