mirror of
https://github.com/vim/vim.git
synced 2025-09-23 03:43:49 -04:00
patch 8.2.1914: Vim9: cannot put line break in expression for '=' register
Problem: Vim9: cannot put line break in expression for '=' register. Solution: Pass fgetline to set_expr_line(). (closes #7209)
This commit is contained in:
@@ -1719,6 +1719,7 @@ do_one_cmd(
|
||||
#ifdef FEAT_EVAL
|
||||
int may_have_range;
|
||||
int vim9script = in_vim9script();
|
||||
int did_set_expr_line = FALSE;
|
||||
#endif
|
||||
|
||||
CLEAR_FIELD(ea);
|
||||
@@ -2315,8 +2316,9 @@ do_one_cmd(
|
||||
// for '=' register: accept the rest of the line as an expression
|
||||
if (ea.arg[-1] == '=' && ea.arg[0] != NUL)
|
||||
{
|
||||
set_expr_line(vim_strsave(ea.arg));
|
||||
set_expr_line(vim_strsave(ea.arg), &ea);
|
||||
ea.arg += STRLEN(ea.arg);
|
||||
did_set_expr_line = TRUE;
|
||||
}
|
||||
#endif
|
||||
ea.arg = skipwhite(ea.arg);
|
||||
@@ -2595,6 +2597,9 @@ doend:
|
||||
do_errthrow(cstack,
|
||||
(ea.cmdidx != CMD_SIZE && !IS_USER_CMDIDX(ea.cmdidx))
|
||||
? cmdnames[(int)ea.cmdidx].cmd_name : (char_u *)NULL);
|
||||
|
||||
if (did_set_expr_line)
|
||||
set_expr_line(NULL, NULL);
|
||||
#endif
|
||||
|
||||
undo_cmdmod(&cmdmod);
|
||||
|
Reference in New Issue
Block a user