]> granicus.if.org Git - vim/commitdiff
patch 8.0.1818: lines remove from wrong buffer when using terminal window v8.0.1818
authorBram Moolenaar <Bram@vim.org>
Sat, 12 May 2018 14:55:14 +0000 (16:55 +0200)
committerBram Moolenaar <Bram@vim.org>
Sat, 12 May 2018 14:55:14 +0000 (16:55 +0200)
Problem:    Lines remove from wrong buffer when using terminal window.
Solution:   Make sure to use tl_buffer.

src/terminal.c
src/version.c

index 1991f382f38cc0f9ae880ededa1b937c361d8429..277f18bcd6aad801d6e972582e412f9df771d80e 100644 (file)
@@ -1462,6 +1462,7 @@ cleanup_scrollback(term_T *term)
     sb_line_T  *line;
     garray_T   *gap;
 
+    curbuf = term->tl_buffer;
     gap = &term->tl_scrollback;
     while (curbuf->b_ml.ml_line_count > term->tl_scrollback_scrolled
                                                            && gap->ga_len > 0)
@@ -1471,7 +1472,9 @@ cleanup_scrollback(term_T *term)
        vim_free(line->sb_cells);
        --gap->ga_len;
     }
-    check_cursor();
+    curbuf = curwin->w_buffer;
+    if (curbuf == term->tl_buffer)
+       check_cursor();
 }
 
 /*
@@ -1495,8 +1498,8 @@ move_terminal_to_buffer(term_T *term)
 
     /* Nothing to do if the buffer already has the lines and nothing was
      * changed. */
-    if (!term->tl_dirty_snapshot
-                 && curbuf->b_ml.ml_line_count > term->tl_scrollback_scrolled)
+    if (!term->tl_dirty_snapshot && term->tl_buffer->b_ml.ml_line_count
+                                               > term->tl_scrollback_scrolled)
        return;
 
     ch_log(term->tl_job == NULL ? NULL : term->tl_job->jv_channel,
index 81f867b981c2442d1528e2bd146c5f2bc4afd34b..5d85a807bea32320cd03fc5ce09a6faf8d2cbd74 100644 (file)
@@ -761,6 +761,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    1818,
 /**/
     1817,
 /**/