diff options
author | bfredl <bjorn.linse@gmail.com> | 2022-08-18 11:12:50 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-08-18 11:12:50 +0200 |
commit | 7a2be8cc1712281a74cadd0747de75369ee0edf3 (patch) | |
tree | f52350fdd37d1b9479abd1e6bcf07f418ad93f25 | |
parent | fbcce2b2ca781fa2133e5d1c85d1eb4ea91a06ee (diff) | |
parent | 21b2906c9cbd7683770732314935ddc181d6e736 (diff) | |
download | rneovim-7a2be8cc1712281a74cadd0747de75369ee0edf3.tar.gz rneovim-7a2be8cc1712281a74cadd0747de75369ee0edf3.tar.bz2 rneovim-7a2be8cc1712281a74cadd0747de75369ee0edf3.zip |
Merge pull request #19828 from bfredl/nullhl
fix(winhl): do not crash when unsetting winhl in just opened window
-rw-r--r-- | src/nvim/highlight.c | 2 | ||||
-rw-r--r-- | test/functional/ui/highlight_spec.lua | 16 |
2 files changed, 17 insertions, 1 deletions
diff --git a/src/nvim/highlight.c b/src/nvim/highlight.c index 5dbf4cc558..daac140da1 100644 --- a/src/nvim/highlight.c +++ b/src/nvim/highlight.c @@ -319,7 +319,7 @@ void update_window_hl(win_T *wp, bool invalid) int ns_id = wp->w_ns_hl; update_ns_hl(ns_id); - if (ns_id != wp->w_ns_hl_active) { + if (ns_id != wp->w_ns_hl_active || wp->w_ns_hl_attr == NULL) { wp->w_ns_hl_active = ns_id; wp->w_ns_hl_attr = *(NSHlAttr *)pmap_get(handle_T)(&ns_hl_attr, ns_id); diff --git a/test/functional/ui/highlight_spec.lua b/test/functional/ui/highlight_spec.lua index a3943d40b6..64194e17be 100644 --- a/test/functional/ui/highlight_spec.lua +++ b/test/functional/ui/highlight_spec.lua @@ -2317,6 +2317,22 @@ describe("'winhighlight' highlight", function() | ]]} end) + + it('can be disabled in newly opened window #19823', function() + command('split | set winhl=Normal:ErrorMsg | set winhl=') + screen:expect{grid=[[ + ^ | + {0:~ }| + {0:~ }| + {3:[No Name] }| + | + {0:~ }| + {4:[No Name] }| + | + ]]} + + helpers.assert_alive() + end) end) describe('highlight namespaces', function() |