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 -- [email protected] -- 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    ///

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/vim_dev/202009161343.08GDhjWO2151843%40masaka.moolenaar.net.

Raspunde prin e-mail lui