[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.10 and 1.11

version 1.10, 2012/03/17 22:35:09 version 1.11, 2012/04/01 13:18:38
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 744 
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");
           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--;
   
                   xfree(ll->layout);
                   xfree(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.10  
changed lines
  Added in v.1.11