From 9a584773b5a19155d11f645d3a8af107e98b2e00 Mon Sep 17 00:00:00 2001 From: Björn Linse Date: Thu, 26 Jul 2018 20:34:13 +0200 Subject: screen.c: add update_window_hl to special redrawing entrypoints The following (run as a script) used to cause a crash due to :sign using a special redraw (not updating nvim's specific highlight data structures) without proper redraw first, as split just flags for redraw later. set cursorline sign define piet text=>> texthl=Search split sign place 3 line=2 name=piet buffer=1 --- src/nvim/screen.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src') diff --git a/src/nvim/screen.c b/src/nvim/screen.c index e8dbc11710..4774075086 100644 --- a/src/nvim/screen.c +++ b/src/nvim/screen.c @@ -507,6 +507,7 @@ void update_single_line(win_T *wp, linenr_T lnum) init_search_hl(wp); start_search_hl(); prepare_search_hl(wp, lnum); + update_window_hl(wp, false); win_line(wp, lnum, row, row + wp->w_lines[j].wl_size, false); end_search_hl(); break; @@ -579,6 +580,7 @@ void update_debug_sign(buf_T *buf, linenr_T lnum) FOR_ALL_WINDOWS_IN_TAB(wp, curtab) { if (wp->w_redr_type != 0) { + update_window_hl(wp, wp->w_redr_type >= NOT_VALID); win_update(wp); } if (wp->w_redr_status) { -- cgit