aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/drawline.c
diff options
context:
space:
mode:
authorluukvbaal <luukvbaal@gmail.com>2024-06-01 12:10:35 +0200
committerGitHub <noreply@github.com>2024-06-01 18:10:35 +0800
commitf2083bd55cafe861e9dffb1c1658e5b0983c5ef6 (patch)
treef25ec1af928c20a90e127cfe31bd1897441a8154 /src/nvim/drawline.c
parent138a93a057dabd70673b7466bf5af41bd66f1385 (diff)
downloadrneovim-f2083bd55cafe861e9dffb1c1658e5b0983c5ef6.tar.gz
rneovim-f2083bd55cafe861e9dffb1c1658e5b0983c5ef6.tar.bz2
rneovim-f2083bd55cafe861e9dffb1c1658e5b0983c5ef6.zip
fix(column): crash with 'signcolumn' set to "number" (#29003)
Problem: Numberwidth may depend on number of signs with text in the buffer and is not handled correctly for extmark signs. Solution: Move legacy sign code for changed numberwidth so that it is handled properly for legacy and extmark signs alike.
Diffstat (limited to 'src/nvim/drawline.c')
-rw-r--r--src/nvim/drawline.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/nvim/drawline.c b/src/nvim/drawline.c
index 4d534d78a2..3bd00ee3f9 100644
--- a/src/nvim/drawline.c
+++ b/src/nvim/drawline.c
@@ -465,6 +465,7 @@ static void draw_sign(bool nrcol, win_T *wp, winlinevars_T *wlv, int sign_idx, i
int fill = nrcol ? number_width(wp) + 1 : SIGN_WIDTH;
draw_col_fill(wlv, schar_from_ascii(' '), fill, attr);
int sign_pos = wlv->off - SIGN_WIDTH - (int)nrcol;
+ assert(sign_pos >= 0);
linebuf_char[sign_pos] = sattr.text[0];
linebuf_char[sign_pos + 1] = sattr.text[1];
} else {