This is responsible for reassigning new index numbers to the winlinks in a given session. --- trunk/tmux.h | 1 + trunk/window.c | 27 +++++++++++++++++++++++++++ 2 files changed, 28 insertions(+), 0 deletions(-)
diff --git a/trunk/tmux.h b/trunk/tmux.h index b118f49..3881bd2 100644 --- a/trunk/tmux.h +++ b/trunk/tmux.h @@ -1924,6 +1924,7 @@ int window_pane_visible(struct window_pane *); char *window_pane_search( struct window_pane *, const char *, u_int *); char *window_printable_flags(struct session *, struct winlink *); +int window_renumber_windows(struct session *); struct window_pane *window_pane_find_up(struct window_pane *); struct window_pane *window_pane_find_down(struct window_pane *); diff --git a/trunk/window.c b/trunk/window.c index 4b5f901..600794a 100644 --- a/trunk/window.c +++ b/trunk/window.c @@ -1087,3 +1087,30 @@ window_pane_find_right(struct window_pane *wp) } return (NULL); } + +/* Renumber the windows across winlinks attached to a specific session. */ +int +window_renumber_windows(struct session *s) +{ + struct winlink *wl; + int new_idx; + + if (s == NULL) + return (-1); + + /* Start renumbering from the base-index if it's set. */ + new_idx = options_get_number(&s->options, "base-index"); + + /* Go through the winlinks and assign new indexes. */ + RB_FOREACH(wl, winlinks, &s->windows) { + /* This clashes with a window already with that id, so skip + * it. + */ + if (wl->idx == new_idx) { + new_idx++; + continue; + } + wl->idx = new_idx++; + } + return (0); +} -- 1.7.5.4 ------------------------------------------------------------------------------ BlackBerry® DevCon Americas, Oct. 18-20, San Francisco, CA The must-attend event for mobile developers. Connect with experts. Get tools for creating Super Apps. See the latest technologies. Sessions, hands-on labs, demos & much more. Register early & save! http://p.sf.net/sfu/rim-blackberry-1 _______________________________________________ tmux-users mailing list tmux-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/tmux-users