[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.95 and 1.96

version 1.95, 2016/10/05 12:36:36 version 1.96, 2016/10/05 22:00:29
Line 394 
Line 394 
 {  {
         struct screen           *s = ctx->s;          struct screen           *s = ctx->s;
         struct grid             *gd = src->grid;          struct grid             *gd = src->grid;
         struct grid_line        *gl;  
         struct grid_cell         gc;          struct grid_cell         gc;
         u_int                    xx, yy, cx, cy, ax, bx;          u_int                    xx, yy, cx, cy;
   
         cx = s->cx;          cx = s->cx;
         cy = s->cy;          cy = s->cy;
   
         for (yy = py; yy < py + ny; yy++) {          for (yy = py; yy < py + ny; yy++) {
                 gl = &gd->linedata[yy];                  for (xx = px; xx < px + nx; xx++) {
                 if (yy < gd->hsize + gd->sy) {                          grid_get_cell(gd, xx, yy, &gc);
                         /*                          screen_write_cell(ctx, &gc);
                          * Find start and end position and copy between                  }
                          * them. Limit to the real end of the line then use a  
                          * clear EOL only if copying to the end, otherwise  
                          * could overwrite whatever is there already.  
                          */  
                         if (px > gl->cellsize)  
                                 ax = gl->cellsize;  
                         else  
                                 ax = px;  
                         if (px + nx == gd->sx && px + nx > gl->cellsize)  
                                 bx = gl->cellsize;  
                         else  
                                 bx = px + nx;  
   
                         for (xx = ax; xx < bx; xx++) {  
                                 grid_get_cell(gd, xx, yy, &gc);  
                                 screen_write_cell(ctx, &gc);  
                         }  
                         if (px + nx == gd->sx && px + nx > gl->cellsize)  
                                 screen_write_clearendofline(ctx);  
                 } else  
                         screen_write_clearline(ctx);  
                 cy++;                  cy++;
                 screen_write_cursormove(ctx, cx, cy);                  screen_write_cursormove(ctx, cx, cy);
         }          }

Legend:
Removed from v.1.95  
changed lines
  Added in v.1.96