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