0
0
mirror of https://github.com/vim/vim.git synced 2025-09-23 03:43:49 -04:00

patch 8.2.1467: Vim9: :echomsg doesn't like a dict argument

Problem:    Vim9: :echomsg doesn't like a dict argument.
Solution:   Convert arguments like in legacy script. (closes #6717)
This commit is contained in:
Bram Moolenaar
2020-08-16 18:29:35 +02:00
parent cc673e746a
commit e5abf7af08
4 changed files with 22 additions and 10 deletions

View File

@@ -1028,14 +1028,20 @@ call_def_function(
for (idx = 0; idx < count; ++idx)
{
tv = STACK_TV_BOT(idx - count);
if (tv->v_type == VAR_CHANNEL || tv->v_type == VAR_JOB)
if (iptr->isn_type == ISN_EXECUTE)
{
SOURCING_LNUM = iptr->isn_lnum;
emsg(_(e_inval_string));
break;
if (tv->v_type == VAR_CHANNEL
|| tv->v_type == VAR_JOB)
{
SOURCING_LNUM = iptr->isn_lnum;
emsg(_(e_inval_string));
break;
}
else
p = tv_get_string_buf(tv, buf);
}
else
p = tv_get_string_buf(tv, buf);
p = tv_stringify(tv, buf);
len = (int)STRLEN(p);
if (ga_grow(&ga, len + 2) == FAIL)
@@ -1050,8 +1056,10 @@ call_def_function(
clear_tv(tv);
}
ectx.ec_stack.ga_len -= count;
if (failed)
goto on_error;
if (!failed && ga.ga_data != NULL)
if (ga.ga_data != NULL)
{
if (iptr->isn_type == ISN_EXECUTE)
do_cmdline_cmd((char_u *)ga.ga_data);