From 6e1c03bd2dff3bf576f8cee781deee6f986c7f0a Mon Sep 17 00:00:00 2001 From: Sean Dewar Date: Fri, 10 Sep 2021 15:12:45 +0100 Subject: [PATCH] vim-patch:8.2.3391: crash with combination of 'linebreak' and other options Problem: Crash with combination of 'linebreak' and other options. Solution: Avoid n_extra to become negative. (Christian Brabandt, closes vim/vim#8817) https://github.com/vim/vim/commit/20e0c3d27bda770542c1c0e4c81fd6443c12f3a6 --- src/nvim/screen.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/nvim/screen.c b/src/nvim/screen.c index a9d362538a..d264557912 100644 --- a/src/nvim/screen.c +++ b/src/nvim/screen.c @@ -3556,9 +3556,12 @@ static int win_line(win_T *wp, linenr_T lnum, int startrow, int endrow, bool noc n_extra = win_lbr_chartabsize(wp, line, p, (colnr_T)vcol, NULL) - 1; // We have just drawn the showbreak value, no need to add - // space for it again + // space for it again. if (vcol == vcol_sbr) { n_extra -= MB_CHARLEN(get_showbreak_value(wp)); + if (n_extra < 0) { + n_extra = 0; + } } if (c == TAB && n_extra + col > grid->Columns) {