0
0
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:
Bram Moolenaar
2020-10-28 13:53:50 +01:00
parent 70cf45810c
commit b4bcea474d
8 changed files with 46 additions and 11 deletions

View File

@@ -474,9 +474,10 @@ skip_expr_concatenate(
* Return pointer to allocated memory, or NULL for failure.
*/
char_u *
eval_to_string(
eval_to_string_eap(
char_u *arg,
int convert)
int convert,
exarg_T *eap)
{
typval_T tv;
char_u *retval;
@@ -484,8 +485,10 @@ eval_to_string(
#ifdef FEAT_FLOAT
char_u numbuf[NUMBUFLEN];
#endif
evalarg_T evalarg;
if (eval0(arg, &tv, NULL, &EVALARG_EVALUATE) == FAIL)
fill_evalarg_from_eap(&evalarg, eap, eap != NULL && eap->skip);
if (eval0(arg, &tv, NULL, &evalarg) == FAIL)
retval = NULL;
else
{
@@ -512,11 +515,19 @@ eval_to_string(
retval = vim_strsave(tv_get_string(&tv));
clear_tv(&tv);
}
clear_evalarg(&EVALARG_EVALUATE, NULL);
clear_evalarg(&evalarg, NULL);
return retval;
}
char_u *
eval_to_string(
char_u *arg,
int convert)
{
return eval_to_string_eap(arg, convert, NULL);
}
/*
* Call eval_to_string() without using current local variables and using
* textwinlock. When "use_sandbox" is TRUE use the sandbox.