fix(sign): do not error when defining sign without attributes (#26106)

Fix https://github.com/airblade/vim-gitgutter/issues/875
This commit is contained in:
luukvbaal
2023-11-19 00:58:33 +01:00
committed by GitHub
parent debad0020c
commit a84b454ebe

View File

@@ -578,11 +578,13 @@ static void sign_define_cmd(char *name, char *cmdline)
char *texthl = NULL; char *texthl = NULL;
char *culhl = NULL; char *culhl = NULL;
char *numhl = NULL; char *numhl = NULL;
int failed = false;
// set values for a defined sign. // set values for a defined sign.
while (true) { while (true) {
char *arg = skipwhite(cmdline); char *arg = skipwhite(cmdline);
if (*arg == NUL) {
break;
}
cmdline = skiptowhite_esc(arg); cmdline = skiptowhite_esc(arg);
if (strncmp(arg, "icon=", 5) == 0) { if (strncmp(arg, "icon=", 5) == 0) {
icon = arg + 5; icon = arg + 5;
@@ -598,8 +600,7 @@ static void sign_define_cmd(char *name, char *cmdline)
numhl = arg + 6; numhl = arg + 6;
} else { } else {
semsg(_(e_invarg2), arg); semsg(_(e_invarg2), arg);
failed = true; return;
break;
} }
if (*cmdline == NUL) { if (*cmdline == NUL) {
break; break;
@@ -607,10 +608,8 @@ static void sign_define_cmd(char *name, char *cmdline)
*cmdline++ = NUL; *cmdline++ = NUL;
} }
if (!failed) {
sign_define_by_name(name, icon, text, linehl, texthl, culhl, numhl); sign_define_by_name(name, icon, text, linehl, texthl, culhl, numhl);
} }
}
/// ":sign place" command /// ":sign place" command
static void sign_place_cmd(buf_T *buf, linenr_T lnum, char *name, int id, char *group, int prio) static void sign_place_cmd(buf_T *buf, linenr_T lnum, char *name, int id, char *group, int prio)