diff options
author | erw7 <erw7.github@gmail.com> | 2020-10-01 16:53:21 +0900 |
---|---|---|
committer | erw7 <erw7.github@gmail.com> | 2020-10-01 17:25:19 +0900 |
commit | 8154c77bef1327aca76b83a1ec5177510f6b4b7b (patch) | |
tree | b424a05246dde57febd58ec1d3ea878d2c90f0bc /src | |
parent | 36a5c394a59d333bf26780d03f182e79e73d33f5 (diff) | |
download | rneovim-8154c77bef1327aca76b83a1ec5177510f6b4b7b.tar.gz rneovim-8154c77bef1327aca76b83a1ec5177510f6b4b7b.tar.bz2 rneovim-8154c77bef1327aca76b83a1ec5177510f6b4b7b.zip |
screen.c: fix buffer overflow due to folding
fixes #12988.
Diffstat (limited to 'src')
-rw-r--r-- | src/nvim/screen.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/nvim/screen.c b/src/nvim/screen.c index f3fdafcc70..3503348049 100644 --- a/src/nvim/screen.c +++ b/src/nvim/screen.c @@ -2822,6 +2822,16 @@ win_line ( n_extra = wp->w_p_rl ? (col + 1) : (grid->Columns - col); } + if (draw_state == WL_LINE + && foldinfo.fi_level != 0 + && foldinfo.fi_lines > 0 + && col >= grid->Columns + && n_extra != 0 + && row == startrow) { + // Truncate the folding. + n_extra = 0; + } + if (draw_state == WL_LINE && (area_highlighting || has_spell)) { // handle Visual or match highlighting in this line if (vcol == fromcol |