Mercurial > vim
comparison src/libvterm/src/screen.c @ 21606:66618893eb2a v8.2.1353
patch 8.2.1353: crash when drawing double-wide character in terminal window
Commit: https://github.com/vim/vim/commit/8b89614e69b9b2330539d0482e44f4724053e780
Author: Bram Moolenaar <Bram@vim.org>
Date: Sun Aug 2 15:05:05 2020 +0200
patch 8.2.1353: crash when drawing double-wide character in terminal window
Problem: Crash when drawing double-wide character in terminal window.
(Masato Nishihata)
Solution: Check getcell() returning NULL. (issue #6141)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sun, 02 Aug 2020 15:15:03 +0200 |
parents | 2f2bc98a8dfb |
children | 2d2758ffd959 |
comparison
equal
deleted
inserted
replaced
21605:e2e607fac96b | 21606:66618893eb2a |
---|---|
184 } | 184 } |
185 if(i < VTERM_MAX_CHARS_PER_CELL) | 185 if(i < VTERM_MAX_CHARS_PER_CELL) |
186 cell->chars[i] = 0; | 186 cell->chars[i] = 0; |
187 | 187 |
188 for(col = 1; col < info->width; col++) | 188 for(col = 1; col < info->width; col++) |
189 getcell(screen, pos.row, pos.col + col)->chars[0] = (uint32_t)-1; | 189 { |
190 ScreenCell *onecell = getcell(screen, pos.row, pos.col + col); | |
191 if (onecell == NULL) | |
192 break; | |
193 onecell->chars[0] = (uint32_t)-1; | |
194 } | |
190 | 195 |
191 rect.start_row = pos.row; | 196 rect.start_row = pos.row; |
192 rect.end_row = pos.row+1; | 197 rect.end_row = pos.row+1; |
193 rect.start_col = pos.col; | 198 rect.start_col = pos.col; |
194 rect.end_col = pos.col+info->width; | 199 rect.end_col = pos.col+info->width; |