aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/nvim/buffer.c19
-rw-r--r--src/nvim/version.c2
2 files changed, 15 insertions, 6 deletions
diff --git a/src/nvim/buffer.c b/src/nvim/buffer.c
index de2cb64d59..d5681eabec 100644
--- a/src/nvim/buffer.c
+++ b/src/nvim/buffer.c
@@ -4360,6 +4360,8 @@ void buf_addsign(
return;
}
+// For an existing, placed sign "markId" change the type to "typenr".
+// Returns the line number of the sign, or zero if the sign is not found.
linenr_T buf_change_sign_type(
buf_T *buf, /* buffer to store sign in */
int markId, /* sign ID */
@@ -4480,6 +4482,15 @@ void buf_delete_signs(buf_T *buf)
{
signlist_T *next;
+ // When deleting the last sign need to redraw the windows to remove the
+ // sign column.
+ if (buf->b_signlist != NULL) {
+ redraw_buf_later(buf, NOT_VALID);
+ // TODO(oni-link): Is this call necessary if curwin is not a viewport
+ // for buf?
+ changed_cline_bef_curs();
+ }
+
while (buf->b_signlist != NULL) {
next = buf->b_signlist->next;
free(buf->b_signlist);
@@ -4495,11 +4506,9 @@ void buf_delete_all_signs()
buf_T *buf; /* buffer we are checking for signs */
for (buf = firstbuf; buf != NULL; buf = buf->b_next) {
- if (buf->b_signlist != NULL) {
- /* Need to redraw the windows to remove the sign column. */
- redraw_buf_later(buf, NOT_VALID);
- buf_delete_signs(buf);
- }
+ if (buf->b_signlist != NULL) {
+ buf_delete_signs(buf);
+ }
}
}
diff --git a/src/nvim/version.c b/src/nvim/version.c
index 3deb9eb7c6..6354306a08 100644
--- a/src/nvim/version.c
+++ b/src/nvim/version.c
@@ -210,7 +210,7 @@ static int included_patches[] = {
//280,
//279,
//278,
- //277,
+ 277,
//276,
//275,
274,