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

Diff for /src/usr.bin/tmux/layout.c between version 1.15 and 1.16

version 1.15, 2012/10/26 14:35:42 version 1.16, 2013/01/17 00:11:22
Line 19 
Line 19 
 #include <sys/types.h>  #include <sys/types.h>
   
 #include <stdlib.h>  #include <stdlib.h>
 #include <string.h>  
   
 #include "tmux.h"  #include "tmux.h"
   
Line 746 
Line 745 
                 layout_fix_panes(wp->window, wp->window->sx, wp->window->sy);                  layout_fix_panes(wp->window, wp->window->sx, wp->window->sy);
         }          }
         notify_window_layout_changed(wp->window);          notify_window_layout_changed(wp->window);
 }  
   
 /* Add layout to list. */  
 void  
 layout_list_add(struct window *w)  
 {  
         struct last_layout      *ll, *ll_last;  
         char                    *layout;  
         u_int                    limit;  
   
         layout = layout_dump(w);  
   
         ll_last = w->layout_list_last;  
         if (ll_last != NULL && strcmp(ll_last->layout, layout) == 0) {  
                 free(layout);  
                 return;  
         }  
   
         ll = xmalloc(sizeof *ll);  
         ll->layout = layout;  
         if (ll_last == NULL)  
                 TAILQ_INSERT_TAIL(&w->layout_list, ll, entry);  
         else  
                 TAILQ_INSERT_AFTER(&w->layout_list, ll_last, ll, entry);  
         w->layout_list_size++;  
         w->layout_list_last = ll;  
   
         limit = options_get_number(&w->options, "layout-history-limit");  
         while (w->layout_list_size > limit) {  
                 ll = TAILQ_LAST(&w->layout_list, last_layouts);  
                 if (ll == w->layout_list_last)  
                         ll = TAILQ_FIRST(&w->layout_list);  
   
                 TAILQ_REMOVE(&w->layout_list, ll, entry);  
                 w->layout_list_size--;  
   
                 free(ll->layout);  
                 free(ll);  
         }  
 }  
   
 /* Apply next layout from list. */  
 const char *  
 layout_list_redo(struct window *w)  
 {  
         struct last_layout      *ll, *ll_last;  
   
         ll_last = w->layout_list_last;  
         if (ll_last == NULL)  
                 return (NULL);  
         ll = TAILQ_NEXT(ll_last, entry);  
         if (ll == NULL)  
                 return (NULL);  
         w->layout_list_last = ll;  
         return (ll->layout);  
 }  
   
 /* Apply previous layout from list. */  
 const char *  
 layout_list_undo(struct window *w)  
 {  
         struct last_layout      *ll, *ll_last;  
   
         ll_last = w->layout_list_last;  
         if (ll_last == NULL)  
                 return (NULL);  
         ll = TAILQ_PREV(ll_last, last_layouts, entry);  
         if (ll == NULL)  
                 return (NULL);  
         w->layout_list_last = ll;  
         return (ll->layout);  
 }  }

Legend:
Removed from v.1.15  
changed lines
  Added in v.1.16