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

Diff for /src/usr.bin/tmux/grid.c between version 1.64 and 1.65

version 1.64, 2017/02/08 16:45:18 version 1.65, 2017/02/13 16:05:30
Line 78 
Line 78 
         gce->data.data = c;          gce->data.data = c;
 }  }
   
   /* Check if a cell should be extended. */
   static int
   grid_need_extended_cell(const struct grid_cell_entry *gce,
       const struct grid_cell *gc)
   {
           if (gce->flags & GRID_FLAG_EXTENDED)
                   return (1);
           if (gc->data.size != 1 || gc->data.width != 1)
                   return (1);
           if ((gc->fg & COLOUR_FLAG_RGB) ||(gc->bg & COLOUR_FLAG_RGB))
                   return (1);
           return (0);
   }
   
 /* Set cell as extended. */  /* Set cell as extended. */
 static struct grid_cell *  static struct grid_cell *
 grid_extended_cell(struct grid_line *gl, struct grid_cell_entry *gce,  grid_extended_cell(struct grid_line *gl, struct grid_cell_entry *gce,
Line 382 
Line 396 
 {  {
         struct grid_line        *gl;          struct grid_line        *gl;
         struct grid_cell_entry  *gce;          struct grid_cell_entry  *gce;
         int                      extended;  
   
         if (grid_check_y(gd, py) != 0)          if (grid_check_y(gd, py) != 0)
                 return;                  return;
Line 394 
Line 407 
                 gl->cellused = px + 1;                  gl->cellused = px + 1;
   
         gce = &gl->celldata[px];          gce = &gl->celldata[px];
         extended = (gce->flags & GRID_FLAG_EXTENDED);          if (grid_need_extended_cell(gce, gc))
         if (!extended && (gc->data.size != 1 || gc->data.width != 1))  
                 extended = 1;  
         if (!extended && (gc->fg & COLOUR_FLAG_RGB))  
                 extended = 1;  
         if (!extended && (gc->bg & COLOUR_FLAG_RGB))  
                 extended = 1;  
         if (extended)  
                 grid_extended_cell(gl, gce, gc);                  grid_extended_cell(gl, gce, gc);
         else          else
                 grid_store_cell(gce, gc, gc->data.data[0]);                  grid_store_cell(gce, gc, gc->data.data[0]);
Line 428 
Line 434 
   
         for (i = 0; i < slen; i++) {          for (i = 0; i < slen; i++) {
                 gce = &gl->celldata[px + i];                  gce = &gl->celldata[px + i];
                 if (gce->flags & GRID_FLAG_EXTENDED) {                  if (grid_need_extended_cell(gce, gc)) {
                         gcp = &gl->extddata[gce->offset];                          gcp = grid_extended_cell(gl, gce, gc);
                         memcpy(gcp, gc, sizeof *gcp);  
                         utf8_set(&gcp->data, s[i]);                          utf8_set(&gcp->data, s[i]);
                 } else                  } else
                         grid_store_cell(gce, gc, s[i]);                          grid_store_cell(gce, gc, s[i]);

Legend:
Removed from v.1.64  
changed lines
  Added in v.1.65