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:
 		{