Patch 8.2.1693

8 views
Skip to first unread message

Bram Moolenaar

unread,
Sep 16, 2020, 9:43:55 AM9/16/20
to vim...@googlegroups.com

Patch 8.2.1693
Problem: "hi def" does not work for cleared highlight.
Solution: Check the "sg_cleared" flag. (Maxim Kim, closes #6956,
closes #4405)
Files: src/highlight.c, src/testdir/test_highlight.vim


*** ../vim-8.2.1692/src/highlight.c 2020-06-28 13:17:07.547811047 +0200
--- src/highlight.c 2020-09-16 15:43:10.005781530 +0200
***************
*** 729,735 ****

if (!ends_excmd2(line, skipwhite(to_end)))
{
! semsg(_("E413: Too many arguments: \":highlight link %s\""), from_start);
return;
}

--- 729,736 ----

if (!ends_excmd2(line, skipwhite(to_end)))
{
! semsg(_("E413: Too many arguments: \":highlight link %s\""),
! from_start);
return;
}

***************
*** 1629,1635 ****
static int
hl_has_settings(int idx, int check_link)
{
! return ( HL_TABLE()[idx].sg_term_attr != 0
|| HL_TABLE()[idx].sg_cterm_attr != 0
|| HL_TABLE()[idx].sg_cterm_fg != 0
|| HL_TABLE()[idx].sg_cterm_bg != 0
--- 1630,1637 ----
static int
hl_has_settings(int idx, int check_link)
{
! return HL_TABLE()[idx].sg_cleared == 0
! && ( HL_TABLE()[idx].sg_term_attr != 0
|| HL_TABLE()[idx].sg_cterm_attr != 0
|| HL_TABLE()[idx].sg_cterm_fg != 0
|| HL_TABLE()[idx].sg_cterm_bg != 0
*** ../vim-8.2.1692/src/testdir/test_highlight.vim 2020-09-15 20:52:03.164972054 +0200
--- src/testdir/test_highlight.vim 2020-09-16 15:38:51.090839125 +0200
***************
*** 832,835 ****
--- 832,867 ----
hi clear
endfunc

+ " Test default highlighting is restored
+ func Test_highlight_restore_defaults()
+ hi! link TestLink Identifier
+ hi! TestHi ctermbg=red
+
+ let hlTestLinkPre = HighlightArgs('TestLink')
+ let hlTestHiPre = HighlightArgs('TestHi')
+
+ " Test colorscheme
+ hi clear
+ if exists('syntax_on')
+ syntax reset
+ endif
+ let g:colors_name = 'test'
+ hi! link TestLink ErrorMsg
+ hi! TestHi ctermbg=green
+
+ " Restore default highlighting
+ colorscheme default
+ syntax on
+ " 'default' should work no matter if highlight group was cleared
+ hi def link TestLink Identifier
+ hi def TestHi ctermbg=red
+
+ let hlTestLinkPost = HighlightArgs('TestLink')
+ let hlTestHiPost = HighlightArgs('TestHi')
+
+ call assert_equal(hlTestLinkPre, hlTestLinkPost)
+ call assert_equal(hlTestHiPre, hlTestHiPost)
+ hi clear
+ endfunc
+
" vim: shiftwidth=2 sts=2 expandtab
*** ../vim-8.2.1692/src/version.c 2020-09-16 15:41:06.470287510 +0200
--- src/version.c 2020-09-16 15:42:22.353976971 +0200
***************
*** 752,753 ****
--- 752,755 ----
{ /* Add new patch number below this line */
+ /**/
+ 1693,
/**/

--
A disclaimer for the disclaimer:
"and before I get a huge amount of complaints , I have no control over the
disclaimer at the end of this mail :-)" (Timothy Aldrich)

/// Bram Moolenaar -- Br...@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
Reply all
Reply to author
Forward
0 new messages