summaryrefslogtreecommitdiffstats
path: root/src/screen.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/screen.c')
-rw-r--r--src/screen.c33
1 files changed, 9 insertions, 24 deletions
diff --git a/src/screen.c b/src/screen.c
index 68142f4858..15fbe598b3 100644
--- a/src/screen.c
+++ b/src/screen.c
@@ -1284,9 +1284,10 @@ win_redr_custom(
char_u buf[MAXPATHL];
char_u *stl;
char_u *p;
+ char_u *opt_name;
+ int opt_scope = 0;
stl_hlrec_T *hltab;
stl_hlrec_T *tabtab;
- int use_sandbox = FALSE;
win_T *ewp;
int p_crb_save;
@@ -1306,9 +1307,7 @@ win_redr_custom(
fillchar = ' ';
attr = HL_ATTR(HLF_TPF);
maxwidth = Columns;
-# ifdef FEAT_EVAL
- use_sandbox = was_set_insecurely((char_u *)"tabline", 0);
-# endif
+ opt_name = (char_u *)"tabline";
}
else
{
@@ -1319,6 +1318,7 @@ win_redr_custom(
if (draw_ruler)
{
stl = p_ruf;
+ opt_name = (char_u *)"rulerformat";
// advance past any leading group spec - implicit in ru_col
if (*stl == '%')
{
@@ -1341,21 +1341,17 @@ win_redr_custom(
fillchar = ' ';
attr = 0;
}
-
-# ifdef FEAT_EVAL
- use_sandbox = was_set_insecurely((char_u *)"rulerformat", 0);
-# endif
}
else
{
+ opt_name = (char_u *)"statusline";
if (*wp->w_p_stl != NUL)
+ {
stl = wp->w_p_stl;
+ opt_scope = OPT_LOCAL;
+ }
else
stl = p_stl;
-# ifdef FEAT_EVAL
- use_sandbox = was_set_insecurely((char_u *)"statusline",
- *wp->w_p_stl == NUL ? 0 : OPT_LOCAL);
-# endif
}
col += wp->w_wincol;
@@ -1374,7 +1370,7 @@ win_redr_custom(
// might change the option value and free the memory.
stl = vim_strsave(stl);
width = build_stl_str_hl(ewp, buf, sizeof(buf),
- stl, use_sandbox,
+ stl, opt_name, opt_scope,
fillchar, maxwidth, &hltab, &tabtab);
vim_free(stl);
ewp->w_p_crb = p_crb_save;
@@ -4547,18 +4543,7 @@ draw_tabline(void)
// Use the 'tabline' option if it's set.
if (*p_tal != NUL)
- {
- int saved_did_emsg = did_emsg;
-
- // Check for an error. If there is one we would loop in redrawing the
- // screen. Avoid that by making 'tabline' empty.
- did_emsg = FALSE;
win_redr_custom(NULL, FALSE);
- if (did_emsg)
- set_string_option_direct((char_u *)"tabline", -1,
- (char_u *)"", OPT_FREE, SID_ERROR);
- did_emsg |= saved_did_emsg;
- }
else
#endif
{