diff options
Diffstat (limited to 'src/nvim/sign.c')
-rw-r--r-- | src/nvim/sign.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/nvim/sign.c b/src/nvim/sign.c index ac26fd0137..8c85fbdaa7 100644 --- a/src/nvim/sign.c +++ b/src/nvim/sign.c @@ -231,9 +231,11 @@ static void insert_sign_by_lnum_prio( { signlist_T *sign; - // keep signs sorted by lnum and by priority: insert new sign at + // keep signs sorted by lnum, priority and id: insert new sign at // the proper position in the list for this lnum. - while (prev != NULL && prev->lnum == lnum && prev->priority <= prio) { + while (prev != NULL && prev->lnum == lnum + && (prev->priority < prio + || (prev->priority == prio && prev->id <= id))) { prev = prev->prev; } if (prev == NULL) { |