Hi Bram,
when listing the sign definition or placements, you can't abort using
the usual q/<ESC>/<Ctrl-C> keys.
Attached patch fixes it, by checking the got_int signal. Please check
and include.
regards,
Christian
--
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php
diff --git a/src/buffer.c b/src/buffer.c
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -5557,7 +5557,7 @@
buf = firstbuf;
else
buf = rbuf;
- while (buf != NULL)
+ while (buf != NULL && !got_int)
{
if (buf->b_signlist != NULL)
{
@@ -5565,7 +5565,7 @@
MSG_PUTS_ATTR(lbuf, hl_attr(HLF_D));
msg_putchar('\n');
}
- for (p = buf->b_signlist; p != NULL; p = p->next)
+ for (p = buf->b_signlist; p != NULL && !got_int; p = p->next)
{
vim_snprintf(lbuf, BUFSIZ, _(" line=%ld id=%d name=%s"),
(long)p->lnum, p->id, sign_typenr2name(p->typenr));
diff --git a/src/ex_cmds.c b/src/ex_cmds.c
--- a/src/ex_cmds.c
+++ b/src/ex_cmds.c
@@ -7108,40 +7108,43 @@
{
char_u *p;
- smsg((char_u *)"sign %s", sp->sn_name);
- if (sp->sn_icon != NULL)
- {
- MSG_PUTS(" icon=");
- msg_outtrans(sp->sn_icon);
+ if (!got_int)
+ {
+ smsg((char_u *)"sign %s", sp->sn_name);
+ if (sp->sn_icon != NULL)
+ {
+ MSG_PUTS(" icon=");
+ msg_outtrans(sp->sn_icon);
#ifdef FEAT_SIGN_ICONS
- if (sp->sn_image == NULL)
- MSG_PUTS(_(" (NOT FOUND)"));
+ if (sp->sn_image == NULL)
+ MSG_PUTS(_(" (NOT FOUND)"));
#else
- MSG_PUTS(_(" (not supported)"));
-#endif
- }
- if (sp->sn_text != NULL)
- {
- MSG_PUTS(" text=");
- msg_outtrans(sp->sn_text);
- }
- if (sp->sn_line_hl > 0)
- {
- MSG_PUTS(" linehl=");
- p = get_highlight_name(NULL, sp->sn_line_hl - 1);
- if (p == NULL)
- MSG_PUTS("NONE");
- else
- msg_puts(p);
- }
- if (sp->sn_text_hl > 0)
- {
- MSG_PUTS(" texthl=");
- p = get_highlight_name(NULL, sp->sn_text_hl - 1);
- if (p == NULL)
- MSG_PUTS("NONE");
- else
- msg_puts(p);
+ MSG_PUTS(_(" (not supported)"));
+#endif
+ }
+ if (sp->sn_text != NULL)
+ {
+ MSG_PUTS(" text=");
+ msg_outtrans(sp->sn_text);
+ }
+ if (sp->sn_line_hl > 0)
+ {
+ MSG_PUTS(" linehl=");
+ p = get_highlight_name(NULL, sp->sn_line_hl - 1);
+ if (p == NULL)
+ MSG_PUTS("NONE");
+ else
+ msg_puts(p);
+ }
+ if (sp->sn_text_hl > 0)
+ {
+ MSG_PUTS(" texthl=");
+ p = get_highlight_name(NULL, sp->sn_text_hl - 1);
+ if (p == NULL)
+ MSG_PUTS("NONE");
+ else
+ msg_puts(p);
+ }
}
}