0
0
mirror of https://github.com/vim/vim.git synced 2025-09-23 03:43:49 -04:00

patch 8.0.1220: skipping empty statusline groups is not correct

Problem:    Skipping empty statusline groups is not correct.
Solution:   Also set group_end_userhl. (itchyny)
This commit is contained in:
Bram Moolenaar
2017-10-26 18:21:24 +02:00
parent f204e05ae9
commit 235dddf1f4
3 changed files with 15 additions and 2 deletions

View File

@@ -4028,9 +4028,14 @@ build_stl_str_hl(
/* remove group if all items are empty and highlight group
* doesn't change */
group_start_userhl = group_end_userhl = 0;
for (n = 0; n < groupitem[groupdepth]; n++)
for (n = groupitem[groupdepth] - 1; n >= 0; n--)
{
if (item[n].type == Highlight)
group_start_userhl = item[n].minwid;
{
group_start_userhl = group_end_userhl = item[n].minwid;
break;
}
}
for (n = groupitem[groupdepth] + 1; n < curitem; n++)
{
if (item[n].type == Normal)

View File

@@ -312,6 +312,12 @@ func Test_statusline()
call assert_equal(sa1, sa3)
call assert_equal(sa1, sa4)
let g:a = ''
set statusline=%#Error#{%(\ %{g:a}\ %)}
call assert_match('^{}\s*$', s:get_statusline())
let g:a = 'X'
call assert_match('^{ X }\s*$', s:get_statusline())
" %%: a percent sign.
set statusline=10%%
call assert_match('^10%\s*$', s:get_statusline())

View File

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