[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.21 and 1.22

version 1.21, 2019/05/29 20:05:15 version 1.22, 2019/08/16 11:49:12
Line 75 
Line 75 
         "name",          "name",
         "size"          "size"
 };  };
   static struct mode_tree_sort_criteria *window_buffer_sort;
   
 struct window_buffer_itemdata {  struct window_buffer_itemdata {
         const char      *name;          const char      *name;
Line 113 
Line 114 
 }  }
   
 static int  static int
 window_buffer_cmp_name(const void *a0, const void *b0)  window_buffer_cmp(const void *a0, const void *b0)
 {  {
         const struct window_buffer_itemdata *const *a = a0;          const struct window_buffer_itemdata *const      *a = a0;
         const struct window_buffer_itemdata *const *b = b0;          const struct window_buffer_itemdata *const      *b = b0;
           int                                              result = 0;
   
         return (strcmp((*a)->name, (*b)->name));          if (window_buffer_sort->field == WINDOW_BUFFER_BY_TIME)
 }                  result = (*b)->order - (*a)->order;
           else if (window_buffer_sort->field == WINDOW_BUFFER_BY_SIZE)
                   result = (*b)->size - (*a)->size;
   
 static int          /* Use WINDOW_BUFFER_BY_NAME as default order and tie breaker. */
 window_buffer_cmp_time(const void *a0, const void *b0)          if (result == 0)
 {                  result = strcmp((*a)->name, (*b)->name);
         const struct window_buffer_itemdata *const *a = a0;  
         const struct window_buffer_itemdata *const *b = b0;  
   
         if ((*a)->order > (*b)->order)          if (window_buffer_sort->reversed)
                 return (-1);                  result = -result;
         if ((*a)->order < (*b)->order)          return (result);
                 return (1);  
         return (strcmp((*a)->name, (*b)->name));  
 }  }
   
 static int  
 window_buffer_cmp_size(const void *a0, const void *b0)  
 {  
         const struct window_buffer_itemdata *const *a = a0;  
         const struct window_buffer_itemdata *const *b = b0;  
   
         if ((*a)->size > (*b)->size)  
                 return (-1);  
         if ((*a)->size < (*b)->size)  
                 return (1);  
         return (strcmp((*a)->name, (*b)->name));  
 }  
   
 static void  static void
 window_buffer_build(void *modedata, u_int sort_type, __unused uint64_t *tag,  window_buffer_build(void *modedata, struct mode_tree_sort_criteria *sort_crit,
     const char *filter)      __unused uint64_t *tag, const char *filter)
 {  {
         struct window_buffer_modedata   *data = modedata;          struct window_buffer_modedata   *data = modedata;
         struct window_buffer_itemdata   *item;          struct window_buffer_itemdata   *item;
Line 175 
Line 162 
                 item->order = paste_buffer_order(pb);                  item->order = paste_buffer_order(pb);
         }          }
   
         switch (sort_type) {          window_buffer_sort = sort_crit;
         case WINDOW_BUFFER_BY_NAME:          qsort(data->item_list, data->item_size, sizeof *data->item_list,
                 qsort(data->item_list, data->item_size, sizeof *data->item_list,              window_buffer_cmp);
                     window_buffer_cmp_name);  
                 break;  
         case WINDOW_BUFFER_BY_TIME:  
                 qsort(data->item_list, data->item_size, sizeof *data->item_list,  
                     window_buffer_cmp_time);  
                 break;  
         case WINDOW_BUFFER_BY_SIZE:  
                 qsort(data->item_list, data->item_size, sizeof *data->item_list,  
                     window_buffer_cmp_size);  
                 break;  
         }  
   
         if (cmd_find_valid_state(&data->fs)) {          if (cmd_find_valid_state(&data->fs)) {
                 s = data->fs.s;                  s = data->fs.s;

Legend:
Removed from v.1.21  
changed lines
  Added in v.1.22