From 4ba3cf60beea7be93a1de674226f412e5fec1105 Mon Sep 17 00:00:00 2001 From: Nicholas Marriott Date: Fri, 26 Oct 2007 12:29:07 +0000 Subject: Reorg window data structures. Add an intermediate data type (struct winlink) to hold index and make sessions hold a RB tree of them rather than a fixed array. --- cmd-list-windows.c | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) (limited to 'cmd-list-windows.c') diff --git a/cmd-list-windows.c b/cmd-list-windows.c index 6807845f..a2bce816 100644 --- a/cmd-list-windows.c +++ b/cmd-list-windows.c @@ -1,4 +1,4 @@ -/* $Id: cmd-list-windows.c,v 1.3 2007-10-23 09:36:07 nicm Exp $ */ +/* $Id: cmd-list-windows.c,v 1.4 2007-10-26 12:29:07 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott @@ -44,17 +44,14 @@ cmd_list_windows_exec(unused void *ptr, struct cmd_ctx *ctx) { struct client *c = ctx->client; struct session *s = ctx->session; + struct winlink *wl; struct window *w; - u_int i; - - for (i = 0; i < ARRAY_LENGTH(&s->windows); i++) { - w = ARRAY_ITEM(&s->windows, i); - if (w == NULL) - continue; - - ctx->print(ctx, - "%u: %s \"%s\" (%s) [%ux%u]", i, w->name, w->screen.title, - ttyname(w->fd), w->screen.sx, w->screen.sy); + + RB_FOREACH(wl, winlinks, &s->windows) { + w = wl->window; + ctx->print(ctx, "%u: %s \"%s\" (%s) [%ux%u]", wl->idx, + w->name, w->screen.title, ttyname(w->fd), + w->screen.sx, w->screen.sy); } if (!(ctx->flags & CMD_KEY)) -- cgit