# HG changeset patch # User Christian Brabandt # Date 1503171003 -7200 # Node ID 782a06ba21872f55bf86be744cf22ba08f2b537a # Parent b3ef304e33e08c1f5ebfa070ec2bd53917fda8a5 patch 8.0.0968: crash when switching terminal modes commit https://github.com/vim/vim/commit/77ac9b5c62b35e90df35fc0bfdee57636cedb144 Author: Bram Moolenaar Date: Sat Aug 19 21:23:05 2017 +0200 patch 8.0.0968: crash when switching terminal modes Problem: Crash when switching terminal modes. (Nikolai Pavlov) Solution: Check that there are scrollback lines. diff --git a/src/terminal.c b/src/terminal.c --- a/src/terminal.c +++ b/src/terminal.c @@ -1037,14 +1037,13 @@ term_enter_job_mode() /* Remove the terminal contents from the scrollback and the buffer. */ gap = &term->tl_scrollback; - while (curbuf->b_ml.ml_line_count > term->tl_scrollback_scrolled) + while (curbuf->b_ml.ml_line_count > term->tl_scrollback_scrolled + && gap->ga_len > 0) { ml_delete(curbuf->b_ml.ml_line_count, FALSE); line = (sb_line_T *)gap->ga_data + gap->ga_len - 1; vim_free(line->sb_cells); --gap->ga_len; - if (gap->ga_len == 0) - break; } check_cursor(); diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -770,6 +770,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 968, +/**/ 967, /**/ 966,