forked from aniani/vim
patch 8.2.1771: synIDattr() cannot get the value of ctermul
Problem: synIDattr() cannot get the value of ctermul. Solution: Add the "ul" value for "what". (closes #7037)
This commit is contained in:
@@ -2684,13 +2684,14 @@ highlight_has_attr(
|
||||
char_u *
|
||||
highlight_color(
|
||||
int id,
|
||||
char_u *what, // "font", "fg", "bg", "sp", "fg#", "bg#" or "sp#"
|
||||
char_u *what, // "font", "fg", "bg", "sp", "ul", "fg#", "bg#" or "sp#"
|
||||
int modec) // 'g' for GUI, 'c' for cterm, 't' for term
|
||||
{
|
||||
static char_u name[20];
|
||||
int n;
|
||||
int fg = FALSE;
|
||||
int sp = FALSE;
|
||||
int ul = FALSE;
|
||||
int font = FALSE;
|
||||
|
||||
if (id <= 0 || id > highlight_ga.ga_len)
|
||||
@@ -2703,6 +2704,8 @@ highlight_color(
|
||||
font = TRUE;
|
||||
else if (TOLOWER_ASC(what[0]) == 's' && TOLOWER_ASC(what[1]) == 'p')
|
||||
sp = TRUE;
|
||||
else if (TOLOWER_ASC(what[0]) == 'u' && TOLOWER_ASC(what[1]) == 'l')
|
||||
ul = TRUE;
|
||||
else if (!(TOLOWER_ASC(what[0]) == 'b' && TOLOWER_ASC(what[1]) == 'g'))
|
||||
return NULL;
|
||||
if (modec == 'g')
|
||||
@@ -2749,6 +2752,8 @@ highlight_color(
|
||||
{
|
||||
if (fg)
|
||||
n = HL_TABLE()[id - 1].sg_cterm_fg - 1;
|
||||
else if (ul)
|
||||
n = HL_TABLE()[id - 1].sg_cterm_ul - 1;
|
||||
else
|
||||
n = HL_TABLE()[id - 1].sg_cterm_bg - 1;
|
||||
if (n < 0)
|
||||
|
Reference in New Issue
Block a user