summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2021-12-05 19:10:04 +0000
committerBram Moolenaar <Bram@vim.org>2021-12-05 19:10:04 +0000
commite5710a02cb78c2a0a868ea55740835c78ddecbb4 (patch)
treebd0a394017208133242a7cbcdc817ca5bb44fbce
parent0bac5fc5e125b7aa0f3b596c9b7f4381279e6688 (diff)
downloadvim-git-e5710a02cb78c2a0a868ea55740835c78ddecbb4.tar.gz
patch 8.2.3748: giving an error for an empty sign argument breaks a pluginv8.2.3748
Problem: Giving an error for an empty sign argument breaks a plugin. Solution: Do not give an error.
-rw-r--r--src/errors.h2
-rw-r--r--src/sign.c30
-rw-r--r--src/testdir/test_signs.vim5
-rw-r--r--src/version.c2
4 files changed, 2 insertions, 37 deletions
diff --git a/src/errors.h b/src/errors.h
index e035f076d..96aef67fc 100644
--- a/src/errors.h
+++ b/src/errors.h
@@ -694,5 +694,3 @@ EXTERN char e_line_number_out_of_range[]
INIT(= N_("E1247: Line number out of range"));
EXTERN char e_closure_called_from_invalid_context[]
INIT(= N_("E1248: Closure called from invalid context"));
-EXTERN char e_group_name_missing_for_str[]
- INIT(= N_("E1249: Group name missing for %s"));
diff --git a/src/sign.c b/src/sign.c
index 2c102e4e5..e358ee975 100644
--- a/src/sign.c
+++ b/src/sign.c
@@ -1310,17 +1310,6 @@ sign_jump(int sign_id, char_u *sign_group, buf_T *buf)
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
*/
@@ -1335,10 +1324,6 @@ sign_define_cmd(char_u *sign_name, char_u *cmdline)
char_u *texthl = NULL;
char_u *culhl = NULL;
int failed = FALSE;
- sign_T *sp_prev;
- int exists;
-
- exists = sign_find(sign_name, &sp_prev) != NULL;
// set values for a defined sign.
for (;;)
@@ -1360,31 +1345,16 @@ sign_define_cmd(char_u *sign_name, char_u *cmdline)
else if (STRNCMP(arg, "linehl=", 7) == 0)
{
arg += 7;
- if (!exists && 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 (!exists && 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 (!exists && check_empty_group(p - arg, "culhl") == FAIL)
- {
- failed = TRUE;
- break;
- }
culhl = vim_strnsave(arg, p - arg);
}
else
diff --git a/src/testdir/test_signs.vim b/src/testdir/test_signs.vim
index 8511708ac..a1ffdf5cf 100644
--- a/src/testdir/test_signs.vim
+++ b/src/testdir/test_signs.vim
@@ -126,11 +126,6 @@ func Test_sign()
call assert_fails("sign define Sign4 text= linehl=Comment", 'E239:')
call assert_fails("sign define Sign4 text=\\ ab linehl=Comment", 'E239:')
- " an empty highlight argument for a new sign is an error
- call assert_fails("sign define SignX linehl=", 'E1249: Group name missing for linehl')
- call assert_fails("sign define SignX culhl=", 'E1249: Group name missing for culhl')
- call assert_fails("sign define SignX texthl=", 'E1249: Group name missing for texthl')
-
" an empty highlight argument for an existing sign clears it
sign define SignY texthl=TextHl culhl=CulHl linehl=LineHl
let sl = sign_getdefined('SignY')[0]
diff --git a/src/version.c b/src/version.c
index e7b0b2e2d..17dfe9891 100644
--- a/src/version.c
+++ b/src/version.c
@@ -754,6 +754,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 3748,
+/**/
3747,
/**/
3746,