diff src/highlight.c @ 22288:a9ff3e0d6d54 v8.2.1693

patch 8.2.1693: "hi def" does not work for cleared highlight Commit: https://github.com/vim/vim/commit/05eb5b9cae123b138bbd23cc77e50657ece6b4ad Author: Bram Moolenaar <Bram@vim.org> Date: Wed Sep 16 15:43:21 2020 +0200 patch 8.2.1693: "hi def" does not work for cleared highlight Problem: "hi def" does not work for cleared highlight. Solution: Check the "sg_cleared" flag. (Maxim Kim, closes https://github.com/vim/vim/issues/6956, closes #4405)
author Bram Moolenaar <Bram@vim.org>
date Wed, 16 Sep 2020 15:45:05 +0200
parents b1fac55cf8a3
children 19e0784ef769
line wrap: on
line diff
--- a/src/highlight.c
+++ b/src/highlight.c
@@ -729,7 +729,8 @@ do_highlight(
 
 	if (!ends_excmd2(line, skipwhite(to_end)))
 	{
-	    semsg(_("E413: Too many arguments: \":highlight link %s\""), from_start);
+	    semsg(_("E413: Too many arguments: \":highlight link %s\""),
+								   from_start);
 	    return;
 	}
 
@@ -1629,7 +1630,8 @@ restore_cterm_colors(void)
     static int
 hl_has_settings(int idx, int check_link)
 {
-    return (   HL_TABLE()[idx].sg_term_attr != 0
+    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