Mercurial > vim
diff src/terminal.c @ 12011:1f4e7361ce89 v8.0.0886
patch 8.0.0886: crash when using ":term ls"
commit https://github.com/vim/vim/commit/f8d57a50496d854f3e82725bfde1543c9d01ff98
Author: Bram Moolenaar <Bram@vim.org>
Date: Mon Aug 7 20:38:42 2017 +0200
patch 8.0.0886: crash when using ":term ls"
Problem: Crash when using ":term ls".
Solution: Fix line number computation. Add a test for this.
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Mon, 07 Aug 2017 20:45:04 +0200 |
parents | 0d9bfdb3f6f7 |
children | e30f3d1fdea7 |
line wrap: on
line diff
--- a/src/terminal.c +++ b/src/terminal.c @@ -695,14 +695,16 @@ term_job_running(term_T *term) static void add_scrollback_line_to_buffer(term_T *term, char_u *text, int len) { - linenr_T lnum = term->tl_scrollback.ga_len - 1; + buf_T *buf = term->tl_buffer; + int empty = (buf->b_ml.ml_flags & ML_EMPTY); + linenr_T lnum = buf->b_ml.ml_line_count; ml_append_buf(term->tl_buffer, lnum, text, len + 1, FALSE); - if (lnum == 0) + if (empty) { /* Delete the empty line that was in the empty buffer. */ - curbuf = term->tl_buffer; - ml_delete(2, FALSE); + curbuf = buf; + ml_delete(1, FALSE); curbuf = curwin->w_buffer; } }