mirror of
https://github.com/vim/vim.git
synced 2025-09-24 03:44:06 -04:00
updated for version 7.2.418
Problem: Vim tries to set the background or foreground color in a terminal to -1. (Graywh) Happens with ":hi Normal ctermbg=NONE". Solution: When resetting the foreground or background color don't set the color, let the clear screen code do that.
This commit is contained in:
30
src/syntax.c
30
src/syntax.c
@@ -7136,7 +7136,8 @@ do_highlight(line, forceit, init)
|
||||
}
|
||||
}
|
||||
}
|
||||
/* Add one to the argument, to avoid zero */
|
||||
/* Add one to the argument, to avoid zero. Zero is used for
|
||||
* "NONE", then "color" is -1. */
|
||||
if (key[5] == 'F')
|
||||
{
|
||||
HL_TABLE()[idx].sg_cterm_fg = color + 1;
|
||||
@@ -7150,7 +7151,7 @@ do_highlight(line, forceit, init)
|
||||
#endif
|
||||
{
|
||||
must_redraw = CLEAR;
|
||||
if (termcap_active)
|
||||
if (termcap_active && color >= 0)
|
||||
term_fg_color(color);
|
||||
}
|
||||
}
|
||||
@@ -7167,16 +7168,21 @@ do_highlight(line, forceit, init)
|
||||
#endif
|
||||
{
|
||||
must_redraw = CLEAR;
|
||||
if (termcap_active)
|
||||
term_bg_color(color);
|
||||
if (t_colors < 16)
|
||||
i = (color == 0 || color == 4);
|
||||
else
|
||||
i = (color < 7 || color == 8);
|
||||
/* Set the 'background' option if the value is wrong. */
|
||||
if (i != (*p_bg == 'd'))
|
||||
set_option_value((char_u *)"bg", 0L,
|
||||
i ? (char_u *)"dark" : (char_u *)"light", 0);
|
||||
if (color >= 0)
|
||||
{
|
||||
if (termcap_active)
|
||||
term_bg_color(color);
|
||||
if (t_colors < 16)
|
||||
i = (color == 0 || color == 4);
|
||||
else
|
||||
i = (color < 7 || color == 8);
|
||||
/* Set the 'background' option if the value is
|
||||
* wrong. */
|
||||
if (i != (*p_bg == 'd'))
|
||||
set_option_value((char_u *)"bg", 0L,
|
||||
i ? (char_u *)"dark"
|
||||
: (char_u *)"light", 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user