Mercurial > vim
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];