1
0
forked from aniani/vim

patch 8.2.1437: Vim9: 'statusline' is evaluated using Vim9 script syntax

Problem:    Vim9: 'statusline' is evaluated using Vim9 script syntax.
Solution:   Always use legacy script syntax.
This commit is contained in:
Bram Moolenaar 2020-08-12 22:18:23 +02:00
parent 66e0014ba6
commit c9edd6b582
3 changed files with 20 additions and 0 deletions

View File

@ -520,6 +520,7 @@ eval_to_string(
/*
* Call eval_to_string() without using current local variables and using
* textwinlock. When "use_sandbox" is TRUE use the sandbox.
* Use legacy Vim script syntax.
*/
char_u *
eval_to_string_safe(
@ -528,7 +529,9 @@ eval_to_string_safe(
{
char_u *retval;
funccal_entry_T funccal_entry;
int save_sc_version = current_sctx.sc_version;
current_sctx.sc_version = 1;
save_funccal(&funccal_entry);
if (use_sandbox)
++sandbox;
@ -538,6 +541,7 @@ eval_to_string_safe(
--sandbox;
--textwinlock;
restore_funccal();
current_sctx.sc_version = save_sc_version;
return retval;
}

View File

@ -1086,6 +1086,20 @@ def Test_cexpr_vimscript()
set errorformat&
enddef
def Test_statusline_syntax()
# legacy syntax is used for 'statusline'
let lines =<< trim END
vim9script
func g:Status()
return '%{"x" is# "x"}'
endfunc
set laststatus=2 statusline=%!Status()
redrawstatus
set laststatus statusline=
END
CheckScriptSuccess(lines)
enddef
def Test_list_vimscript()
# checks line continuation and comments
let lines =<< trim END

View File

@ -754,6 +754,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
1437,
/**/
1436,
/**/