Mercurial > vim
diff src/libvterm/src/screen.c @ 20496:747a270eb1db v8.2.0802
patch 8.2.0802: libvterm code lags behind the upstream version
Commit: https://github.com/vim/vim/commit/d863728913801c8fa6d633f6580edfcada533fd0
Author: Bram Moolenaar <Bram@vim.org>
Date: Wed May 20 18:41:41 2020 +0200
patch 8.2.0802: libvterm code lags behind the upstream version
Problem: Libvterm code lags behind the upstream version.
Solution: Include revisions 759 - 762.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Wed, 20 May 2020 18:45:04 +0200 |
parents | 1d595fada804 |
children | 03826c672315 |
line wrap: on
line diff
--- a/src/libvterm/src/screen.c +++ b/src/libvterm/src/screen.c @@ -21,6 +21,7 @@ typedef struct unsigned int italic : 1; unsigned int blink : 1; unsigned int reverse : 1; + unsigned int conceal : 1; unsigned int strike : 1; unsigned int font : 4; // 0 to 9 @@ -420,6 +421,9 @@ static int setpenattr(VTermAttr attr, VT case VTERM_ATTR_REVERSE: screen->pen.reverse = val->boolean; return 1; + case VTERM_ATTR_CONCEAL: + screen->pen.conceal = val->boolean; + return 1; case VTERM_ATTR_STRIKE: screen->pen.strike = val->boolean; return 1; @@ -544,6 +548,7 @@ static void resize_buffer(VTermScreen *s dst->pen.italic = src->attrs.italic; dst->pen.blink = src->attrs.blink; dst->pen.reverse = src->attrs.reverse ^ screen->global_reverse; + dst->pen.conceal = src->attrs.conceal; dst->pen.strike = src->attrs.strike; dst->pen.font = src->attrs.font; @@ -553,6 +558,8 @@ static void resize_buffer(VTermScreen *s if(src->width == 2 && pos.col < (new_cols-1)) (dst + 1)->chars[0] = (uint32_t) -1; } + for( ; pos.col < new_cols; pos.col++) + clearcell(screen, &new_buffer[pos.row * new_cols + pos.col]); new_row--; if(active) @@ -815,6 +822,7 @@ int vterm_screen_get_cell(const VTermScr cell->attrs.italic = intcell->pen.italic; cell->attrs.blink = intcell->pen.blink; cell->attrs.reverse = intcell->pen.reverse ^ screen->global_reverse; + cell->attrs.conceal = intcell->pen.conceal; cell->attrs.strike = intcell->pen.strike; cell->attrs.font = intcell->pen.font; @@ -890,7 +898,7 @@ void *vterm_screen_get_cbdata(VTermScree return screen->cbdata; } -void vterm_screen_set_unrecognised_fallbacks(VTermScreen *screen, const VTermParserCallbacks *fallbacks, void *user) +void vterm_screen_set_unrecognised_fallbacks(VTermScreen *screen, const VTermStateFallbacks *fallbacks, void *user) { vterm_state_set_unrecognised_fallbacks(screen->state, fallbacks, user); } @@ -935,6 +943,8 @@ static int attrs_differ(VTermAttrMask at return 1; if((attrs & VTERM_ATTR_REVERSE_MASK) && (a->pen.reverse != b->pen.reverse)) return 1; + if((attrs & VTERM_ATTR_CONCEAL_MASK) && (a->pen.conceal != b->pen.conceal)) + return 1; if((attrs & VTERM_ATTR_STRIKE_MASK) && (a->pen.strike != b->pen.strike)) return 1; if((attrs & VTERM_ATTR_FONT_MASK) && (a->pen.font != b->pen.font))