Mercurial > vim
diff src/vim9execute.c @ 25541:2ae1d5a4ae5c v8.2.3307
patch 8.2.3307: Vim9: :echoconsole cannot access local variables
Commit: https://github.com/vim/vim/commit/7de62623735d228c8f81f6ac8309fe4922822cb2
Author: Bram Moolenaar <Bram@vim.org>
Date: Sat Aug 7 15:05:47 2021 +0200
patch 8.2.3307: Vim9: :echoconsole cannot access local variables
Problem: Vim9: :echoconsole cannot access local variables.
Solution: Handle like other :echo commands. (closes https://github.com/vim/vim/issues/8708)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sat, 07 Aug 2021 15:15:02 +0200 |
parents | df39041f13ed |
children | a84e75d73fde |
line wrap: on
line diff
--- a/src/vim9execute.c +++ b/src/vim9execute.c @@ -1869,9 +1869,11 @@ exec_instructions(ectx_T *ectx) // :execute {string} ... // :echomsg {string} ... + // :echoconsole {string} ... // :echoerr {string} ... case ISN_EXECUTE: case ISN_ECHOMSG: + case ISN_ECHOCONSOLE: case ISN_ECHOERR: { int count = iptr->isn_arg.number; @@ -1941,6 +1943,12 @@ exec_instructions(ectx_T *ectx) msg_attr(ga.ga_data, echo_attr); out_flush(); } + else if (iptr->isn_type == ISN_ECHOCONSOLE) + { + ui_write(ga.ga_data, (int)STRLEN(ga.ga_data), + TRUE); + ui_write((char_u *)"\r\n", 2, TRUE); + } else { SOURCING_LNUM = iptr->isn_lnum; @@ -4900,15 +4908,19 @@ list_instructions(char *pfx, isn_T *inst break; case ISN_EXECUTE: smsg("%s%4d EXECUTE %lld", pfx, current, - (varnumber_T)(iptr->isn_arg.number)); + (varnumber_T)(iptr->isn_arg.number)); break; case ISN_ECHOMSG: smsg("%s%4d ECHOMSG %lld", pfx, current, - (varnumber_T)(iptr->isn_arg.number)); + (varnumber_T)(iptr->isn_arg.number)); + break; + case ISN_ECHOCONSOLE: + smsg("%s%4d ECHOCONSOLE %lld", pfx, current, + (varnumber_T)(iptr->isn_arg.number)); break; case ISN_ECHOERR: smsg("%s%4d ECHOERR %lld", pfx, current, - (varnumber_T)(iptr->isn_arg.number)); + (varnumber_T)(iptr->isn_arg.number)); break; case ISN_LOAD: {