aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/nvim/decoration.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/nvim/decoration.c b/src/nvim/decoration.c
index bcfae50c8e..303d0318b5 100644
--- a/src/nvim/decoration.c
+++ b/src/nvim/decoration.c
@@ -740,14 +740,15 @@ void decor_redraw_signs(win_T *wp, buf_T *buf, int row, SignTextAttrs sattrs[],
if (kv_size(signs)) {
int width = wp->w_minscwidth == SCL_NUM ? 1 : wp->w_scwidth;
- int idx = MIN(width, num_text) - 1;
+ int len = MIN(width, num_text);
+ int idx = 0;
qsort((void *)&kv_A(signs, 0), kv_size(signs), sizeof(kv_A(signs, 0)), sign_item_cmp);
for (size_t i = 0; i < kv_size(signs); i++) {
DecorSignHighlight *sh = kv_A(signs, i).sh;
- if (idx >= 0 && sh->text[0]) {
+ if (idx < len && sh->text[0]) {
memcpy(sattrs[idx].text, sh->text, SIGN_WIDTH * sizeof(sattr_T));
- sattrs[idx--].hl_id = sh->hl_id;
+ sattrs[idx++].hl_id = sh->hl_id;
}
if (*num_id == 0) {
*num_id = sh->number_hl_id;