aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorbfredl <bjorn.linse@gmail.com>2023-04-13 14:08:36 +0200
committerbfredl <bjorn.linse@gmail.com>2023-04-13 14:17:12 +0200
commitd05d63a18ff8394b31b3f3b85bfaebe2af358437 (patch)
tree61357eabcd06f1055eef4b3883e2acfdcb60628b /src
parent231e1988ed788caa6b15817c63e94f38cd8ac75c (diff)
downloadrneovim-d05d63a18ff8394b31b3f3b85bfaebe2af358437.tar.gz
rneovim-d05d63a18ff8394b31b3f3b85bfaebe2af358437.tar.bz2
rneovim-d05d63a18ff8394b31b3f3b85bfaebe2af358437.zip
fix(api): make nvim_get_hl not return non-existing groups
fixes #23063
Diffstat (limited to 'src')
-rw-r--r--src/nvim/highlight_group.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/nvim/highlight_group.c b/src/nvim/highlight_group.c
index 6493408a58..3ab8a3bb88 100644
--- a/src/nvim/highlight_group.c
+++ b/src/nvim/highlight_group.c
@@ -1530,6 +1530,10 @@ static bool hlgroup2dict(Dictionary *hl, NS ns_id, int hl_id, Arena *arena)
if (link == -1) {
return false;
}
+ if (ns_id == 0 && sgp->sg_cleared && sgp->sg_set == 0) {
+ // table entry was created but not ever set
+ return false;
+ }
HlAttrs attr =
syn_attr2entry(ns_id == 0 ? sgp->sg_attr : ns_get_hl(&ns_id, hl_id, false, sgp->sg_set));
*hl = arena_dict(arena, HLATTRS_DICT_SIZE + 1);