[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.8 and 1.9

version 1.8, 2017/06/09 16:01:39 version 1.9, 2017/08/09 11:43:45
Line 36 
Line 36 
   
 #define WINDOW_BUFFER_DEFAULT_COMMAND "paste-buffer -b '%%'"  #define WINDOW_BUFFER_DEFAULT_COMMAND "paste-buffer -b '%%'"
   
   #define WINDOW_BUFFER_DEFAULT_FORMAT \
           "#{buffer_size} bytes (#{t:buffer_created})"
   
 const struct window_mode window_buffer_mode = {  const struct window_mode window_buffer_mode = {
         .name = "buffer-mode",          .name = "buffer-mode",
   
Line 58 
Line 61 
   
 struct window_buffer_itemdata {  struct window_buffer_itemdata {
         const char      *name;          const char      *name;
         time_t           created;  
         u_int            order;          u_int            order;
         size_t           size;          size_t           size;
 };  };
Line 66 
Line 68 
 struct window_buffer_modedata {  struct window_buffer_modedata {
         struct mode_tree_data            *data;          struct mode_tree_data            *data;
         char                             *command;          char                             *command;
           char                             *format;
   
         struct window_buffer_itemdata   **item_list;          struct window_buffer_itemdata   **item_list;
         u_int                             item_size;          u_int                             item_size;
Line 132 
Line 135 
         struct window_buffer_itemdata   *item;          struct window_buffer_itemdata   *item;
         u_int                            i;          u_int                            i;
         struct paste_buffer             *pb;          struct paste_buffer             *pb;
         char                            *tim, *text, *cp;          char                            *text, *cp;
         struct format_tree              *ft;          struct format_tree              *ft;
   
         for (i = 0; i < data->item_size; i++)          for (i = 0; i < data->item_size; i++)
Line 145 
Line 148 
         while ((pb = paste_walk(pb)) != NULL) {          while ((pb = paste_walk(pb)) != NULL) {
                 item = window_buffer_add_item(data);                  item = window_buffer_add_item(data);
                 item->name = xstrdup(paste_buffer_name(pb));                  item->name = xstrdup(paste_buffer_name(pb));
                 item->created = paste_buffer_created(pb);  
                 paste_buffer_data(pb, &item->size);                  paste_buffer_data(pb, &item->size);
                 item->order = paste_buffer_order(pb);                  item->order = paste_buffer_order(pb);
         }          }
Line 168 
Line 170 
         for (i = 0; i < data->item_size; i++) {          for (i = 0; i < data->item_size; i++) {
                 item = data->item_list[i];                  item = data->item_list[i];
   
                   pb = paste_get_name(item->name);
                   if (pb == NULL)
                           continue;
                   ft = format_create(NULL, NULL, FORMAT_NONE, 0);
                   format_defaults_paste_buffer(ft, pb);
   
                 if (filter != NULL) {                  if (filter != NULL) {
                         pb = paste_get_name(item->name);  
                         if (pb == NULL)  
                                 continue;  
                         ft = format_create(NULL, NULL, FORMAT_NONE, 0);  
                         format_defaults_paste_buffer(ft, pb);  
                         cp = format_expand(ft, filter);                          cp = format_expand(ft, filter);
                         if (!format_true(cp)) {                          if (!format_true(cp)) {
                                 free(cp);                                  free(cp);
Line 181 
Line 184 
                                 continue;                                  continue;
                         }                          }
                         free(cp);                          free(cp);
                         format_free(ft);  
                 }                  }
   
                 tim = ctime(&item->created);                  text = format_expand(ft, data->format);
                 *strchr(tim, '\n') = '\0';  
   
                 xasprintf(&text, "%zu bytes (%s)", item->size, tim);  
                 mode_tree_add(data->data, NULL, item, item->order, item->name,                  mode_tree_add(data->data, NULL, item, item->order, item->name,
                     text, -1);                      text, -1);
                 free(text);                  free(text);
   
                   format_free(ft);
         }          }
   
 }  }
Line 269 
Line 270 
   
         wp->modedata = data = xcalloc(1, sizeof *data);          wp->modedata = data = xcalloc(1, sizeof *data);
   
           if (args == NULL || !args_has(args, 'F'))
                   data->format = xstrdup(WINDOW_BUFFER_DEFAULT_FORMAT);
           else
                   data->format = xstrdup(args_get(args, 'F'));
         if (args == NULL || args->argc == 0)          if (args == NULL || args->argc == 0)
                 data->command = xstrdup(WINDOW_BUFFER_DEFAULT_COMMAND);                  data->command = xstrdup(WINDOW_BUFFER_DEFAULT_COMMAND);
         else          else
Line 299 
Line 304 
                 window_buffer_free_item(data->item_list[i]);                  window_buffer_free_item(data->item_list[i]);
         free(data->item_list);          free(data->item_list);
   
           free(data->format);
         free(data->command);          free(data->command);
   
         free(data);          free(data);
 }  }
   

Legend:
Removed from v.1.8  
changed lines
  Added in v.1.9