Mercurial > vim
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". |