diff src/libvterm/src/screen.c @ 20480:d0bf39eb2b07 v8.2.0794

patch 8.2.0794: libvterm code lags behind the upstream version Commit: https://github.com/vim/vim/commit/d098b824c10cc20dc55e18c22c4991f61826006e Author: Bram Moolenaar <Bram@vim.org> Date: Mon May 18 21:12:59 2020 +0200 patch 8.2.0794: libvterm code lags behind the upstream version Problem: Libvterm code lags behind the upstream version. Solution: Include revisions 743 - 747.
author Bram Moolenaar <Bram@vim.org>
date Mon, 18 May 2020 21:15:04 +0200
parents 3bd0d7cfddc9
children dc88c690f19b
line wrap: on
line diff
--- a/src/libvterm/src/screen.c
+++ b/src/libvterm/src/screen.c
@@ -56,8 +56,6 @@ struct VTermScreen
   int global_reverse;
 
   // Primary and Altscreen. buffers[1] is lazily allocated as needed
-#define BUFIDX_PRIMARY   0
-#define BUFIDX_ALTSCREEN 1
   ScreenCell *buffers[2];
 
   // buffer will == buffers[0] or buffers[1], depending on altscreen
@@ -481,7 +479,7 @@ static int bell(void *user)
   return 0;
 }
 
-static void resize_buffer(VTermScreen *screen, int bufidx, int new_rows, int new_cols, int active, VTermPos *delta)
+static void resize_buffer(VTermScreen *screen, int bufidx, int new_rows, int new_cols, int active, VTermStateFields *statefields)
 {
   int old_rows = screen->rows;
   int old_cols = screen->cols;
@@ -524,8 +522,8 @@ found_oldrow:
     int row;
     for(row = 0; row <= old_row; row++)
       sb_pushline_from_row(screen, row);
-    if(delta)
-      delta->row -= (old_row + 1);
+    if(active)
+      statefields->pos.row -= (old_row + 1);
   }
   if(new_row >= 0 && bufidx == BUFIDX_PRIMARY &&
       screen->callbacks && screen->callbacks->sb_popline) {
@@ -563,8 +561,8 @@ found_oldrow:
       }
       new_row--;
 
-      if(delta)
-        delta->row++;
+      if(active)
+        statefields->pos.row++;
     }
   }
 
@@ -590,7 +588,7 @@ found_oldrow:
    */
 }
 
-static int resize(int new_rows, int new_cols, VTermPos *delta, void *user)
+static int resize(int new_rows, int new_cols, VTermStateFields *fields, void *user)
 {
   VTermScreen *screen = user;
 
@@ -606,9 +604,9 @@ static int resize(int new_rows, int new_
     screen->sb_buffer = vterm_allocator_malloc(screen->vt, sizeof(VTermScreenCell) * new_cols);
   }
 
-  resize_buffer(screen, 0, new_rows, new_cols, !altscreen_active, altscreen_active ? NULL : delta);
+  resize_buffer(screen, 0, new_rows, new_cols, !altscreen_active, fields);
   if(screen->buffers[BUFIDX_ALTSCREEN])
-    resize_buffer(screen, 1, new_rows, new_cols, altscreen_active, altscreen_active ? delta : NULL);
+    resize_buffer(screen, 1, new_rows, new_cols, altscreen_active, fields);
 
   screen->buffer = altscreen_active ? screen->buffers[BUFIDX_ALTSCREEN] : screen->buffers[BUFIDX_PRIMARY];