comparison 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
comparison
equal deleted inserted replaced
20495:0736d3dc23ba 20496:747a270eb1db
19 unsigned int bold : 1; 19 unsigned int bold : 1;
20 unsigned int underline : 2; 20 unsigned int underline : 2;
21 unsigned int italic : 1; 21 unsigned int italic : 1;
22 unsigned int blink : 1; 22 unsigned int blink : 1;
23 unsigned int reverse : 1; 23 unsigned int reverse : 1;
24 unsigned int conceal : 1;
24 unsigned int strike : 1; 25 unsigned int strike : 1;
25 unsigned int font : 4; // 0 to 9 26 unsigned int font : 4; // 0 to 9
26 27
27 // Extra state storage that isn't strictly pen-related 28 // Extra state storage that isn't strictly pen-related
28 unsigned int protected_cell : 1; 29 unsigned int protected_cell : 1;
418 screen->pen.blink = val->boolean; 419 screen->pen.blink = val->boolean;
419 return 1; 420 return 1;
420 case VTERM_ATTR_REVERSE: 421 case VTERM_ATTR_REVERSE:
421 screen->pen.reverse = val->boolean; 422 screen->pen.reverse = val->boolean;
422 return 1; 423 return 1;
424 case VTERM_ATTR_CONCEAL:
425 screen->pen.conceal = val->boolean;
426 return 1;
423 case VTERM_ATTR_STRIKE: 427 case VTERM_ATTR_STRIKE:
424 screen->pen.strike = val->boolean; 428 screen->pen.strike = val->boolean;
425 return 1; 429 return 1;
426 case VTERM_ATTR_FONT: 430 case VTERM_ATTR_FONT:
427 screen->pen.font = val->number; 431 screen->pen.font = val->number;
542 dst->pen.bold = src->attrs.bold; 546 dst->pen.bold = src->attrs.bold;
543 dst->pen.underline = src->attrs.underline; 547 dst->pen.underline = src->attrs.underline;
544 dst->pen.italic = src->attrs.italic; 548 dst->pen.italic = src->attrs.italic;
545 dst->pen.blink = src->attrs.blink; 549 dst->pen.blink = src->attrs.blink;
546 dst->pen.reverse = src->attrs.reverse ^ screen->global_reverse; 550 dst->pen.reverse = src->attrs.reverse ^ screen->global_reverse;
551 dst->pen.conceal = src->attrs.conceal;
547 dst->pen.strike = src->attrs.strike; 552 dst->pen.strike = src->attrs.strike;
548 dst->pen.font = src->attrs.font; 553 dst->pen.font = src->attrs.font;
549 554
550 dst->pen.fg = src->fg; 555 dst->pen.fg = src->fg;
551 dst->pen.bg = src->bg; 556 dst->pen.bg = src->bg;
552 557
553 if(src->width == 2 && pos.col < (new_cols-1)) 558 if(src->width == 2 && pos.col < (new_cols-1))
554 (dst + 1)->chars[0] = (uint32_t) -1; 559 (dst + 1)->chars[0] = (uint32_t) -1;
555 } 560 }
561 for( ; pos.col < new_cols; pos.col++)
562 clearcell(screen, &new_buffer[pos.row * new_cols + pos.col]);
556 new_row--; 563 new_row--;
557 564
558 if(active) 565 if(active)
559 statefields->pos.row++; 566 statefields->pos.row++;
560 } 567 }
813 cell->attrs.bold = intcell->pen.bold; 820 cell->attrs.bold = intcell->pen.bold;
814 cell->attrs.underline = intcell->pen.underline; 821 cell->attrs.underline = intcell->pen.underline;
815 cell->attrs.italic = intcell->pen.italic; 822 cell->attrs.italic = intcell->pen.italic;
816 cell->attrs.blink = intcell->pen.blink; 823 cell->attrs.blink = intcell->pen.blink;
817 cell->attrs.reverse = intcell->pen.reverse ^ screen->global_reverse; 824 cell->attrs.reverse = intcell->pen.reverse ^ screen->global_reverse;
825 cell->attrs.conceal = intcell->pen.conceal;
818 cell->attrs.strike = intcell->pen.strike; 826 cell->attrs.strike = intcell->pen.strike;
819 cell->attrs.font = intcell->pen.font; 827 cell->attrs.font = intcell->pen.font;
820 828
821 cell->attrs.dwl = intcell->pen.dwl; 829 cell->attrs.dwl = intcell->pen.dwl;
822 cell->attrs.dhl = intcell->pen.dhl; 830 cell->attrs.dhl = intcell->pen.dhl;
888 void *vterm_screen_get_cbdata(VTermScreen *screen) 896 void *vterm_screen_get_cbdata(VTermScreen *screen)
889 { 897 {
890 return screen->cbdata; 898 return screen->cbdata;
891 } 899 }
892 900
893 void vterm_screen_set_unrecognised_fallbacks(VTermScreen *screen, const VTermParserCallbacks *fallbacks, void *user) 901 void vterm_screen_set_unrecognised_fallbacks(VTermScreen *screen, const VTermStateFallbacks *fallbacks, void *user)
894 { 902 {
895 vterm_state_set_unrecognised_fallbacks(screen->state, fallbacks, user); 903 vterm_state_set_unrecognised_fallbacks(screen->state, fallbacks, user);
896 } 904 }
897 905
898 void *vterm_screen_get_unrecognised_fbdata(VTermScreen *screen) 906 void *vterm_screen_get_unrecognised_fbdata(VTermScreen *screen)
932 if((attrs & VTERM_ATTR_ITALIC_MASK) && (a->pen.italic != b->pen.italic)) 940 if((attrs & VTERM_ATTR_ITALIC_MASK) && (a->pen.italic != b->pen.italic))
933 return 1; 941 return 1;
934 if((attrs & VTERM_ATTR_BLINK_MASK) && (a->pen.blink != b->pen.blink)) 942 if((attrs & VTERM_ATTR_BLINK_MASK) && (a->pen.blink != b->pen.blink))
935 return 1; 943 return 1;
936 if((attrs & VTERM_ATTR_REVERSE_MASK) && (a->pen.reverse != b->pen.reverse)) 944 if((attrs & VTERM_ATTR_REVERSE_MASK) && (a->pen.reverse != b->pen.reverse))
945 return 1;
946 if((attrs & VTERM_ATTR_CONCEAL_MASK) && (a->pen.conceal != b->pen.conceal))
937 return 1; 947 return 1;
938 if((attrs & VTERM_ATTR_STRIKE_MASK) && (a->pen.strike != b->pen.strike)) 948 if((attrs & VTERM_ATTR_STRIKE_MASK) && (a->pen.strike != b->pen.strike))
939 return 1; 949 return 1;
940 if((attrs & VTERM_ATTR_FONT_MASK) && (a->pen.font != b->pen.font)) 950 if((attrs & VTERM_ATTR_FONT_MASK) && (a->pen.font != b->pen.font))
941 return 1; 951 return 1;