0
0
mirror of https://github.com/vim/vim.git synced 2025-09-24 03:44:06 -04:00

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

View File

@@ -1086,6 +1086,20 @@ def Test_cexpr_vimscript()
set errorformat& set errorformat&
enddef 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() def Test_list_vimscript()
# checks line continuation and comments # checks line continuation and comments
let lines =<< trim END let lines =<< trim END

View File

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