comparison src/libvterm/src/screen.c @ 13770:2449b6ce1456 v8.0.1757

patch 8.0.1757: unnecessary changes in libvterm commit https://github.com/vim/vim/commit/b691de05f69905fe417f583083d7e3cc16eb865e Author: Bram Moolenaar <Bram@vim.org> Date: Tue Apr 24 18:39:14 2018 +0200 patch 8.0.1757: unnecessary changes in libvterm Problem: Unnecessary changes in libvterm. Solution: Bring back // comments and trailing comma in enums.
author Christian Brabandt <cb@256bit.org>
date Tue, 24 Apr 2018 18:45:07 +0200
parents 9f857e6310b6
children
comparison
equal deleted inserted replaced
13769:804c3b21ce59 13770:2449b6ce1456
113 113
114 case VTERM_DAMAGE_ROW: 114 case VTERM_DAMAGE_ROW:
115 /* Emit damage longer than one row. Try to merge with existing damage in 115 /* Emit damage longer than one row. Try to merge with existing damage in
116 * the same row */ 116 * the same row */
117 if(rect.end_row > rect.start_row + 1) { 117 if(rect.end_row > rect.start_row + 1) {
118 /* Bigger than 1 line - flush existing, emit this */ 118 // Bigger than 1 line - flush existing, emit this
119 vterm_screen_flush_damage(screen); 119 vterm_screen_flush_damage(screen);
120 emit = rect; 120 emit = rect;
121 } 121 }
122 else if(screen->damaged.start_row == -1) { 122 else if(screen->damaged.start_row == -1) {
123 /* None stored yet */ 123 // None stored yet
124 screen->damaged = rect; 124 screen->damaged = rect;
125 return; 125 return;
126 } 126 }
127 else if(rect.start_row == screen->damaged.start_row) { 127 else if(rect.start_row == screen->damaged.start_row) {
128 /* Merge with the stored line */ 128 // Merge with the stored line
129 if(screen->damaged.start_col > rect.start_col) 129 if(screen->damaged.start_col > rect.start_col)
130 screen->damaged.start_col = rect.start_col; 130 screen->damaged.start_col = rect.start_col;
131 if(screen->damaged.end_col < rect.end_col) 131 if(screen->damaged.end_col < rect.end_col)
132 screen->damaged.end_col = rect.end_col; 132 screen->damaged.end_col = rect.end_col;
133 return; 133 return;
134 } 134 }
135 else { 135 else {
136 /* Emit the currently stored line, store a new one */ 136 // Emit the currently stored line, store a new one
137 emit = screen->damaged; 137 emit = screen->damaged;
138 screen->damaged = rect; 138 screen->damaged = rect;
139 } 139 }
140 break; 140 break;
141 141
206 static int moverect_internal(VTermRect dest, VTermRect src, void *user) 206 static int moverect_internal(VTermRect dest, VTermRect src, void *user)
207 { 207 {
208 VTermScreen *screen = user; 208 VTermScreen *screen = user;
209 209
210 if(screen->callbacks && screen->callbacks->sb_pushline && 210 if(screen->callbacks && screen->callbacks->sb_pushline &&
211 dest.start_row == 0 && dest.start_col == 0 && /* starts top-left corner */ 211 dest.start_row == 0 && dest.start_col == 0 && // starts top-left corner
212 dest.end_col == screen->cols && /* full width */ 212 dest.end_col == screen->cols && // full width
213 screen->buffer == screen->buffers[0]) { /* not altscreen */ 213 screen->buffer == screen->buffers[0]) { // not altscreen
214 VTermPos pos; 214 VTermPos pos;
215 for(pos.row = 0; pos.row < src.start_row; pos.row++) { 215 for(pos.row = 0; pos.row < src.start_row; pos.row++) {
216 for(pos.col = 0; pos.col < screen->cols; pos.col++) 216 for(pos.col = 0; pos.col < screen->cols; pos.col++)
217 (void)vterm_screen_get_cell(screen, pos, screen->sb_buffer + pos.col); 217 (void)vterm_screen_get_cell(screen, pos, screen->sb_buffer + pos.col);
218 218
250 { 250 {
251 VTermScreen *screen = user; 251 VTermScreen *screen = user;
252 252
253 if(screen->callbacks && screen->callbacks->moverect) { 253 if(screen->callbacks && screen->callbacks->moverect) {
254 if(screen->damage_merge != VTERM_DAMAGE_SCROLL) 254 if(screen->damage_merge != VTERM_DAMAGE_SCROLL)
255 /* Avoid an infinite loop */ 255 // Avoid an infinite loop
256 vterm_screen_flush_damage(screen); 256 vterm_screen_flush_damage(screen);
257 257
258 if((*screen->callbacks->moverect)(dest, src, screen->cbdata)) 258 if((*screen->callbacks->moverect)(dest, src, screen->cbdata))
259 return 1; 259 return 1;
260 } 260 }
486 int old_rows = screen->rows; 486 int old_rows = screen->rows;
487 int old_cols = screen->cols; 487 int old_cols = screen->cols;
488 int first_blank_row; 488 int first_blank_row;
489 489
490 if(!is_altscreen && new_rows < old_rows) { 490 if(!is_altscreen && new_rows < old_rows) {
491 /* Fewer rows - determine if we're going to scroll at all, and if so, push 491 // Fewer rows - determine if we're going to scroll at all, and if so, push
492 those lines to scrollback */ 492 // those lines to scrollback
493 VTermPos pos = { 0, 0 }; 493 VTermPos pos = { 0, 0 };
494 VTermPos cursor = screen->state->pos; 494 VTermPos cursor = screen->state->pos;
495 /* Find the first blank row after the cursor. */ 495 // Find the first blank row after the cursor.
496 for(pos.row = old_rows - 1; pos.row >= new_rows; pos.row--) 496 for(pos.row = old_rows - 1; pos.row >= new_rows; pos.row--)
497 if(!vterm_screen_is_eol(screen, pos) || cursor.row == pos.row) 497 if(!vterm_screen_is_eol(screen, pos) || cursor.row == pos.row)
498 break; 498 break;
499 499
500 first_blank_row = pos.row + 1; 500 first_blank_row = pos.row + 1;
700 for(col = rect.start_col; col < rect.end_col; col++) { 700 for(col = rect.start_col; col < rect.end_col; col++) {
701 ScreenCell *cell = getcell(screen, row, col); 701 ScreenCell *cell = getcell(screen, row, col);
702 int i; 702 int i;
703 703
704 if(cell->chars[0] == 0) 704 if(cell->chars[0] == 0)
705 /* Erased cell, might need a space */ 705 // Erased cell, might need a space
706 padding++; 706 padding++;
707 else if(cell->chars[0] == (uint32_t)-1) 707 else if(cell->chars[0] == (uint32_t)-1)
708 /* Gap behind a double-width char, do nothing */ 708 // Gap behind a double-width char, do nothing
709 ; 709 ;
710 else { 710 else {
711 while(padding) { 711 while(padding) {
712 PUT(UNICODE_SPACE); 712 PUT(UNICODE_SPACE);
713 padding--; 713 padding--;
910 { 910 {
911 int col; 911 int col;
912 912
913 ScreenCell *target = getcell(screen, pos.row, pos.col); 913 ScreenCell *target = getcell(screen, pos.row, pos.col);
914 914
915 /* TODO: bounds check */ 915 // TODO: bounds check
916 extent->start_row = pos.row; 916 extent->start_row = pos.row;
917 extent->end_row = pos.row + 1; 917 extent->end_row = pos.row + 1;
918 918
919 if(extent->start_col < 0) 919 if(extent->start_col < 0)
920 extent->start_col = 0; 920 extent->start_col = 0;