=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tmux/layout.c,v retrieving revision 1.15 retrieving revision 1.16 diff -c -r1.15 -r1.16 *** src/usr.bin/tmux/layout.c 2012/10/26 14:35:42 1.15 --- src/usr.bin/tmux/layout.c 2013/01/17 00:11:22 1.16 *************** *** 1,4 **** ! /* $OpenBSD: layout.c,v 1.15 2012/10/26 14:35:42 nicm Exp $ */ /* * Copyright (c) 2009 Nicholas Marriott --- 1,4 ---- ! /* $OpenBSD: layout.c,v 1.16 2013/01/17 00:11:22 nicm Exp $ */ /* * Copyright (c) 2009 Nicholas Marriott *************** *** 19,25 **** #include #include - #include #include "tmux.h" --- 19,24 ---- *************** *** 746,820 **** layout_fix_panes(wp->window, wp->window->sx, wp->window->sy); } 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); } --- 745,748 ----