Hi
I don't mind the idea but I think this code is wrong - the tree is keyed
by index so you shouldn't change it like this. You will need to create a
temporary tree, remove each window from the current tree, increase the
index and add it to the temporary tree. Then copy the temporary over
s->windows (can use memcpy).
Also from what I can see the if () in the loop does nothing so it isn't
needed.
On Thu, Aug 04, 2011 at 11:24:02PM +0100, Thomas Adam wrote:
> 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
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/tmux-users
------------------------------------------------------------------------------
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
[email protected]
https://lists.sourceforge.net/lists/listinfo/tmux-users