comparison src/sign.c @ 26424:f6ca4276c4cc v8.2.3743

patch 8.2.3743: ":sign" can add a highlight group without a name Commit: https://github.com/vim/vim/commit/5e18ccc60bdddc4aa39ab039f1a7c918f29e67ce Author: Bram Moolenaar <Bram@vim.org> Date: Sun Dec 5 13:02:50 2021 +0000 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 https://github.com/vim/vim/issues/9280)
author Bram Moolenaar <Bram@vim.org>
date Sun, 05 Dec 2021 14:15:03 +0100
parents 365e7f083f02
children 99a512bd8423
comparison
equal deleted inserted replaced
26423:2f222239640f 26424:f6ca4276c4cc
1293 # endif 1293 # endif
1294 1294
1295 return lnum; 1295 return lnum;
1296 } 1296 }
1297 1297
1298 static int
1299 check_empty_group(size_t len, char *name)
1300 {
1301 if (len == 0)
1302 {
1303 semsg(_(e_group_name_missing_for_str), name);
1304 return FAIL;
1305 }
1306 return OK;
1307 }
1308
1298 /* 1309 /*
1299 * ":sign define {name} ..." command 1310 * ":sign define {name} ..." command
1300 */ 1311 */
1301 static void 1312 static void
1302 sign_define_cmd(char_u *sign_name, char_u *cmdline) 1313 sign_define_cmd(char_u *sign_name, char_u *cmdline)
1328 text = vim_strnsave(arg, p - arg); 1339 text = vim_strnsave(arg, p - arg);
1329 } 1340 }
1330 else if (STRNCMP(arg, "linehl=", 7) == 0) 1341 else if (STRNCMP(arg, "linehl=", 7) == 0)
1331 { 1342 {
1332 arg += 7; 1343 arg += 7;
1344 if (check_empty_group(p - arg, "linehl") == FAIL)
1345 {
1346 failed = TRUE;
1347 break;
1348 }
1333 linehl = vim_strnsave(arg, p - arg); 1349 linehl = vim_strnsave(arg, p - arg);
1334 } 1350 }
1335 else if (STRNCMP(arg, "texthl=", 7) == 0) 1351 else if (STRNCMP(arg, "texthl=", 7) == 0)
1336 { 1352 {
1337 arg += 7; 1353 arg += 7;
1354 if (check_empty_group(p - arg, "texthl") == FAIL)
1355 {
1356 failed = TRUE;
1357 break;
1358 }
1338 texthl = vim_strnsave(arg, p - arg); 1359 texthl = vim_strnsave(arg, p - arg);
1339 } 1360 }
1340 else if (STRNCMP(arg, "culhl=", 6) == 0) 1361 else if (STRNCMP(arg, "culhl=", 6) == 0)
1341 { 1362 {
1342 arg += 6; 1363 arg += 6;
1364 if (check_empty_group(p - arg, "culhl") == FAIL)
1365 {
1366 failed = TRUE;
1367 break;
1368 }
1343 culhl = vim_strnsave(arg, p - arg); 1369 culhl = vim_strnsave(arg, p - arg);
1344 } 1370 }
1345 else 1371 else
1346 { 1372 {
1347 semsg(_(e_invarg2), arg); 1373 semsg(_(e_invarg2), arg);