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 #9280)
diff --git a/src/sign.c b/src/sign.c
index a4c8967..66a29db 100644
--- a/src/sign.c
+++ b/src/sign.c
@@ -1295,6 +1295,17 @@
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 @@
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