changeset 26434:f612c41cfd94 v8.2.3748

patch 8.2.3748: giving an error for an empty sign argument breaks a plugin Commit: https://github.com/vim/vim/commit/e5710a02cb78c2a0a868ea55740835c78ddecbb4 Author: Bram Moolenaar <Bram@vim.org> Date: Sun Dec 5 19:10:04 2021 +0000 patch 8.2.3748: giving an error for an empty sign argument breaks a plugin Problem: Giving an error for an empty sign argument breaks a plugin. Solution: Do not give an error.
author Bram Moolenaar <Bram@vim.org>
date Sun, 05 Dec 2021 20:15:03 +0100
parents 6d49ab05b0e9
children 8860c02d96a8
files src/errors.h src/sign.c src/testdir/test_signs.vim src/version.c
diffstat 4 files changed, 2 insertions(+), 37 deletions(-) [+]
line wrap: on
line diff
--- 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"));
--- a/src/sign.c
+++ b/src/sign.c
@@ -1310,17 +1310,6 @@ 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
  */
@@ -1335,10 +1324,6 @@ sign_define_cmd(char_u *sign_name, char_
     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_
 	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
--- 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]
--- 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,