diff options
author | glepnir <glephunter@gmail.com> | 2023-09-14 21:02:30 +0800 |
---|---|---|
committer | glepnir <glephunter@gmail.com> | 2023-09-19 18:05:59 +0800 |
commit | ab92575753874f9dee73e722b6fddd8dd49e2f13 (patch) | |
tree | 20d6ffa4161efa88a042caa6a97e945ca635ffb4 | |
parent | a6e74c1f0a2bbf03f5b99c167b549018f4c8fb0d (diff) | |
download | rneovim-ab92575753874f9dee73e722b6fddd8dd49e2f13.tar.gz rneovim-ab92575753874f9dee73e722b6fddd8dd49e2f13.tar.bz2 rneovim-ab92575753874f9dee73e722b6fddd8dd49e2f13.zip |
fix(highlight): winhl receive wrong argument
-rw-r--r-- | src/nvim/option.c | 3 | ||||
-rw-r--r-- | test/functional/ui/highlight_spec.lua | 14 |
2 files changed, 17 insertions, 0 deletions
diff --git a/src/nvim/option.c b/src/nvim/option.c index ae4e7c1fda..df90fadc97 100644 --- a/src/nvim/option.c +++ b/src/nvim/option.c @@ -1915,6 +1915,9 @@ bool parse_winhl_opt(win_T *wp) char *commap = xstrchrnul(hi, ','); size_t len = (size_t)(commap - hi); int hl_id = len ? syn_check_group(hi, len) : -1; + if (hl_id == 0) { + return false; + } int hl_id_link = nlen ? syn_check_group(p, nlen) : 0; HlAttrs attrs = HLATTRS_INIT; diff --git a/test/functional/ui/highlight_spec.lua b/test/functional/ui/highlight_spec.lua index c68f4cf34c..931e1f9985 100644 --- a/test/functional/ui/highlight_spec.lua +++ b/test/functional/ui/highlight_spec.lua @@ -8,6 +8,7 @@ local feed_command, eq = helpers.feed_command, helpers.eq local curbufmeths = helpers.curbufmeths local funcs = helpers.funcs local meths = helpers.meths +local exec_lua = helpers.exec_lua describe('colorscheme compatibility', function() before_each(function() @@ -2641,4 +2642,17 @@ describe('highlight namespaces', function() | ]]} end) + + it('winhl does not accept invalid value #24586', function() + local res = exec_lua([[ + local curwin = vim.api.nvim_get_current_win() + vim.api.nvim_command("set winhl=Normal:Visual") + local _, msg = pcall(vim.api.nvim_command,"set winhl='Normal:Wrong'") + return { msg, vim.wo[curwin].winhl } + ]]) + eq({ + "Vim(set):E5248: Invalid character in group name", + "Normal:Visual", + },res) + end) end) |