Mercurial > vim
diff src/sign.c @ 26424:f6ca4276c4cc v8.2.3743
patch 8.2.3743: ":sign" can add a highlight group without a name
Commit: https://github.com/vim/vim/commit/5e18ccc60bdddc4aa39ab039f1a7c918f29e67ce
Author: Bram Moolenaar <Bram@vim.org>
Date: Sun Dec 5 13:02:50 2021 +0000
patch 8.2.3743: ":sign" can add a highlight group without a name
Problem: ":sign" can add a highlight group without a name.
Solution: Give an error if the group name is missing. (closes https://github.com/vim/vim/issues/9280)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sun, 05 Dec 2021 14:15:03 +0100 |
parents | 365e7f083f02 |
children | 99a512bd8423 |
line wrap: on
line diff
--- a/src/sign.c +++ b/src/sign.c @@ -1295,6 +1295,17 @@ sign_jump(int sign_id, char_u *sign_grou return lnum; } + static int +check_empty_group(size_t len, char *name) +{ + if (len == 0) + { + semsg(_(e_group_name_missing_for_str), name); + return FAIL; + } + return OK; +} + /* * ":sign define {name} ..." command */ @@ -1330,16 +1341,31 @@ sign_define_cmd(char_u *sign_name, char_ else if (STRNCMP(arg, "linehl=", 7) == 0) { arg += 7; + if (check_empty_group(p - arg, "linehl") == FAIL) + { + failed = TRUE; + break; + } linehl = vim_strnsave(arg, p - arg); } else if (STRNCMP(arg, "texthl=", 7) == 0) { arg += 7; + if (check_empty_group(p - arg, "texthl") == FAIL) + { + failed = TRUE; + break; + } texthl = vim_strnsave(arg, p - arg); } else if (STRNCMP(arg, "culhl=", 6) == 0) { arg += 6; + if (check_empty_group(p - arg, "culhl") == FAIL) + { + failed = TRUE; + break; + } culhl = vim_strnsave(arg, p - arg); } else