comparison src/vim9.h @ 24590:2818f846f099 v8.2.2834

patch 8.2.2834: Vim9: :cexpr does not work with local variables Commit: https://github.com/vim/vim/commit/5f7d4c049e934dbc8d2c3f2720797c10ee3c55c2 Author: Bram Moolenaar <Bram@vim.org> Date: Wed May 5 21:31:39 2021 +0200 patch 8.2.2834: Vim9: :cexpr does not work with local variables Problem: Vim9: :cexpr does not work with local variables. Solution: Compile :cexpr.
author Bram Moolenaar <Bram@vim.org>
date Wed, 05 May 2021 21:45:04 +0200
parents fe29b220eece
children a4fda40e0bb9
comparison
equal deleted inserted replaced
24589:c770bde164ea 24590:2818f846f099
170 ISN_DROP, // pop stack and discard value 170 ISN_DROP, // pop stack and discard value
171 171
172 ISN_REDIRSTART, // :redir => 172 ISN_REDIRSTART, // :redir =>
173 ISN_REDIREND, // :redir END, isn_arg.number == 1 for append 173 ISN_REDIREND, // :redir END, isn_arg.number == 1 for append
174 174
175 ISN_CEXPR_AUCMD, // first part of :cexpr isn_arg.number is cmdidx
176 ISN_CEXPR_CORE, // second part of :cexpr, uses isn_arg.cexpr
177
175 ISN_FINISH // end marker in list of instructions 178 ISN_FINISH // end marker in list of instructions
176 } isntype_T; 179 } isntype_T;
177 180
178 181
179 // arguments to ISN_BCALL 182 // arguments to ISN_BCALL
349 // arguments to ISN_SUBSTITUTE 352 // arguments to ISN_SUBSTITUTE
350 typedef struct { 353 typedef struct {
351 char_u *subs_cmd; // :s command 354 char_u *subs_cmd; // :s command
352 isn_T *subs_instr; // sequence of instructions 355 isn_T *subs_instr; // sequence of instructions
353 } subs_T; 356 } subs_T;
357
358 // indirect arguments to ISN_TRY
359 typedef struct {
360 int cer_cmdidx;
361 char_u *cer_cmdline;
362 int cer_forceit;
363 } cexprref_T;
364
365 // arguments to ISN_CEXPR_CORE
366 typedef struct {
367 cexprref_T *cexpr_ref;
368 } cexpr_T;
354 369
355 /* 370 /*
356 * Instruction 371 * Instruction
357 */ 372 */
358 struct isn_S { 373 struct isn_S {
393 put_T put; 408 put_T put;
394 cmod_T cmdmod; 409 cmod_T cmdmod;
395 unpack_T unpack; 410 unpack_T unpack;
396 isn_outer_T outer; 411 isn_outer_T outer;
397 subs_T subs; 412 subs_T subs;
413 cexpr_T cexpr;
398 } isn_arg; 414 } isn_arg;
399 }; 415 };
400 416
401 /* 417 /*
402 * Info about a function defined with :def. Used in "def_functions". 418 * Info about a function defined with :def. Used in "def_functions".