[BACK]Return to screen-write.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / tmux

Diff for /src/usr.bin/tmux/screen-write.c between version 1.190 and 1.191

version 1.190, 2021/01/18 10:27:54 version 1.191, 2021/01/22 11:28:33
Line 1516 
Line 1516 
         struct screen_write_collect_item        *ci, *tmp;          struct screen_write_collect_item        *ci, *tmp;
         struct screen_write_collect_line        *cl;          struct screen_write_collect_line        *cl;
         u_int                                    y, cx, cy, items = 0;          u_int                                    y, cx, cy, items = 0;
         int                                      clear = 0;  
         struct tty_ctx                           ttyctx;          struct tty_ctx                           ttyctx;
         size_t                                   written = 0;          size_t                                   written = 0;
   
Line 1540 
Line 1539 
         cx = s->cx; cy = s->cy;          cx = s->cx; cy = s->cy;
         for (y = 0; y < screen_size_y(s); y++) {          for (y = 0; y < screen_size_y(s); y++) {
                 cl = &ctx->s->write_list[y];                  cl = &ctx->s->write_list[y];
                   if (cl->bg != 0) {
                           screen_write_set_cursor(ctx, 0, y);
                           screen_write_initctx(ctx, &ttyctx, 1);
                           ttyctx.bg = cl->bg - 1;
                           tty_write(tty_cmd_clearline, &ttyctx);
                   }
                 TAILQ_FOREACH_SAFE(ci, &cl->items, entry, tmp) {                  TAILQ_FOREACH_SAFE(ci, &cl->items, entry, tmp) {
                         if (clear != -1 &&  
                             (u_int)clear != ci->x &&  
                             cl->bg != 0) {  
                                 screen_write_set_cursor(ctx, clear, y);  
                                 screen_write_initctx(ctx, &ttyctx, 1);  
                                 ttyctx.bg = cl->bg - 1;  
                                 ttyctx.num = ci->x - clear;  
                                 log_debug("clear %u at %u", ttyctx.num, clear);  
                                 tty_write(tty_cmd_clearcharacter, &ttyctx);  
                         }  
   
                         screen_write_set_cursor(ctx, ci->x, y);                          screen_write_set_cursor(ctx, ci->x, y);
                         if (ci->type == CLEAR_END) {                          if (ci->type == CLEAR_END) {
                                 screen_write_initctx(ctx, &ttyctx, 1);                                  screen_write_initctx(ctx, &ttyctx, 1);
                                 ttyctx.bg = ci->bg;                                  ttyctx.bg = ci->bg;
                                 tty_write(tty_cmd_clearendofline, &ttyctx);                                  tty_write(tty_cmd_clearendofline, &ttyctx);
                                 clear = -1;  
                         } else if (ci->type == CLEAR_START) {                          } else if (ci->type == CLEAR_START) {
                                 screen_write_initctx(ctx, &ttyctx, 1);                                  screen_write_initctx(ctx, &ttyctx, 1);
                                 ttyctx.bg = ci->bg;                                  ttyctx.bg = ci->bg;
                                 tty_write(tty_cmd_clearstartofline, &ttyctx);                                  tty_write(tty_cmd_clearstartofline, &ttyctx);
                                 clear = ci->x + 1;  
                         } else {                          } else {
                                 screen_write_initctx(ctx, &ttyctx, 0);                                  screen_write_initctx(ctx, &ttyctx, 0);
                                 ttyctx.cell = &ci->gc;                                  ttyctx.cell = &ci->gc;
Line 1570 
Line 1562 
                                 ttyctx.ptr = cl->data + ci->x;                                  ttyctx.ptr = cl->data + ci->x;
                                 ttyctx.num = ci->used;                                  ttyctx.num = ci->used;
                                 tty_write(tty_cmd_cells, &ttyctx);                                  tty_write(tty_cmd_cells, &ttyctx);
                                 clear = ci->x + ci->used;  
                         }                          }
   
                         items++;                          items++;
Line 1579 
Line 1570 
                         TAILQ_REMOVE(&cl->items, ci, entry);                          TAILQ_REMOVE(&cl->items, ci, entry);
                         free(ci);                          free(ci);
                 }                  }
                 if (clear != -1 &&  
                     (u_int)clear != screen_size_x(s) - 1 &&  
                     cl->bg != 0) {  
                         screen_write_set_cursor(ctx, clear, y);  
                         screen_write_initctx(ctx, &ttyctx, 1);  
                         ttyctx.bg = cl->bg - 1;  
                         log_debug("clear to end at %u", clear);  
                         tty_write(tty_cmd_clearendofline, &ttyctx);  
                 }  
                 clear = 0;  
                 cl->bg = 0;                  cl->bg = 0;
         }          }
         s->cx = cx; s->cy = cy;          s->cx = cx; s->cy = cy;

Legend:
Removed from v.1.190  
changed lines
  Added in v.1.191