summaryrefslogtreecommitdiff
path: root/src/ex_cmds.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/ex_cmds.c')
-rw-r--r--src/ex_cmds.c15
1 files changed, 3 insertions, 12 deletions
diff --git a/src/ex_cmds.c b/src/ex_cmds.c
index 52b669ae9..6a7945106 100644
--- a/src/ex_cmds.c
+++ b/src/ex_cmds.c
@@ -7871,16 +7871,7 @@ sign_place(
return FAIL;
}
if (*sign_id == 0)
- {
- // Allocate a new sign id
- int id = 1;
- signlist_T *sign;
-
- while ((sign = buf_getsign_with_id(buf, id, sign_group)) != NULL)
- id++;
-
- *sign_id = id;
- }
+ *sign_id = sign_group_get_next_signid(buf, sign_group);
if (lnum > 0)
// ":sign place {id} line={lnum} name={name} file={fname}":
@@ -8193,7 +8184,7 @@ ex_sign(exarg_T *eap)
else if (idx == SIGNCMD_JUMP)
{
/* ":sign jump {id} file={fname}" */
- if (lnum >= 0 || sign_name != NULL)
+ if (lnum >= 0 || sign_name != NULL || buf == NULL)
EMSG(_(e_invarg));
else if ((lnum = buf_findsign(buf, id, group)) > 0)
{ /* goto a sign ... */
@@ -8350,7 +8341,7 @@ sign_get_placed_in_buf(
return;
dict_add_list(d, "signs", l);
- FOR_ALL_SIGNS_IN_BUF(buf)
+ FOR_ALL_SIGNS_IN_BUF(buf, sign)
{
if (!sign_in_group(sign, sign_group))
continue;