diff options
author | Bram Moolenaar <Bram@vim.org> | 2021-12-05 19:10:04 +0000 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2021-12-05 19:10:04 +0000 |
commit | e5710a02cb78c2a0a868ea55740835c78ddecbb4 (patch) | |
tree | bd0a394017208133242a7cbcdc817ca5bb44fbce /src | |
parent | 0bac5fc5e125b7aa0f3b596c9b7f4381279e6688 (diff) |
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.
Diffstat (limited to 'src')
-rw-r--r-- | src/errors.h | 2 | ||||
-rw-r--r-- | src/sign.c | 30 | ||||
-rw-r--r-- | src/testdir/test_signs.vim | 5 | ||||
-rw-r--r-- | src/version.c | 2 |
4 files changed, 2 insertions, 37 deletions
diff --git a/src/errors.h b/src/errors.h index e035f076d8..96aef67fcb 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 2c102e4e52..e358ee9752 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 8511708ace..a1ffdf5cfd 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 e7b0b2e2d0..17dfe9891a 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, |