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

Diff for /src/usr.bin/tmux/window-buffer.c between version 1.23 and 1.24

version 1.23, 2019/12/03 10:47:23 version 1.24, 2019/12/13 09:15:13
Line 208 
Line 208 
 {  {
         struct window_buffer_itemdata   *item = itemdata;          struct window_buffer_itemdata   *item = itemdata;
         struct paste_buffer             *pb;          struct paste_buffer             *pb;
         char                             line[1024];          const char                      *pdata, *start, *end;
         const char                      *pdata, *end, *cp;          char                            *buf = NULL;
         size_t                           psize, at;          size_t                           psize, len;
         u_int                            i, cx = ctx->s->cx, cy = ctx->s->cy;          u_int                            i, cx = ctx->s->cx, cy = ctx->s->cy;
   
         pb = paste_get_name(item->name);          pb = paste_get_name(item->name);
Line 219 
Line 219 
   
         pdata = end = paste_buffer_data(pb, &psize);          pdata = end = paste_buffer_data(pb, &psize);
         for (i = 0; i < sy; i++) {          for (i = 0; i < sy; i++) {
                 at = 0;                  start = end;
                 while (end != pdata + psize && *end != '\n') {                  while (end != pdata + psize && *end != '\n')
                         if ((sizeof line) - at > 5) {  
                                 cp = vis(line + at, *end, VIS_OCTAL|VIS_TAB, 0);  
                                 at = cp - line;  
                         }  
                         end++;                          end++;
                 }                  buf = xreallocarray(buf, 4, end - start + 1);
                 if (at > sx)                  len = utf8_strvis(buf, start, end - start, VIS_OCTAL|VIS_TAB);
                         at = sx;                  if (*buf != '\0') {
                 line[at] = '\0';  
   
                 if (*line != '\0') {  
                         screen_write_cursormove(ctx, cx, cy + i, 0);                          screen_write_cursormove(ctx, cx, cy + i, 0);
                         screen_write_puts(ctx, &grid_default_cell, "%s", line);                          screen_write_nputs(ctx, sx, &grid_default_cell, "%s",
                               buf);
                 }                  }
   
                 if (end == pdata + psize)                  if (end == pdata + psize)
                         break;                          break;
                 end++;                  end++;
         }          }
           free(buf);
 }  }
   
 static int  static int

Legend:
Removed from v.1.23  
changed lines
  Added in v.1.24