Applied thanks.
On Fri, Nov 11, 2011 at 05:11:52PM -0500, Ben Boeckel wrote: > On Sat, Nov 05, 2011 at 09:03:03 +0000, Nicholas Marriott wrote: > > - window_pane_index change is a > > separate thing I guess. > > Attached. > > --Ben > From a1da8eef7dec2fd729927d33ebc6c3bfde54031a Mon Sep 17 00:00:00 2001 > From: Ben Boeckel <maths...@gmail.com> > Date: Thu, 20 Oct 2011 12:03:55 -0400 > Subject: [PATCH] Change window_pane_index to be like window_index > > --- > trunk/cmd-respawn-pane.c | 7 +++++-- > trunk/cmd-split-window.c | 3 ++- > trunk/screen-redraw.c | 5 +++-- > trunk/status.c | 5 ++++- > trunk/tmux.h | 2 +- > trunk/window.c | 18 ++++++++++-------- > 6 files changed, 25 insertions(+), 15 deletions(-) > > diff --git a/trunk/cmd-respawn-pane.c b/trunk/cmd-respawn-pane.c > index 7e272a8..d4d67d5 100644 > --- a/trunk/cmd-respawn-pane.c > +++ b/trunk/cmd-respawn-pane.c > @@ -49,15 +49,18 @@ cmd_respawn_pane_exec(struct cmd *self, struct cmd_ctx > *ctx) > struct session *s; > struct environ env; > const char *cmd; > - char *cause; > + char *cause; > + u_int idx; > > if ((wl = cmd_find_pane(ctx, args_get(args, 't'), &s, &wp)) == NULL) > return (-1); > w = wl->window; > > if (!args_has(self->args, 'k') && wp->fd != -1) { > + if (window_pane_index(wp, &idx) != 0) > + fatalx("index not found"); > ctx->error(ctx, "pane still active: %s:%u.%u", > - s->name, wl->idx, window_pane_index(w, wp)); > + s->name, wl->idx, idx); > return (-1); > } > > diff --git a/trunk/cmd-split-window.c b/trunk/cmd-split-window.c > index 6a95e1b..258c632 100644 > --- a/trunk/cmd-split-window.c > +++ b/trunk/cmd-split-window.c > @@ -139,7 +139,8 @@ cmd_split_window_exec(struct cmd *self, struct cmd_ctx > *ctx) > environ_free(&env); > > if (args_has(args, 'P')) { > - paneidx = window_pane_index(wl->window, new_wp); > + if (window_pane_index(new_wp, &paneidx) != 0) > + fatalx("index not found"); > ctx->print(ctx, "%s:%u.%u", s->name, wl->idx, paneidx); > } > return (0); > diff --git a/trunk/screen-redraw.c b/trunk/screen-redraw.c > index a12fa36..c9e0542 100644 > --- a/trunk/screen-redraw.c > +++ b/trunk/screen-redraw.c > @@ -264,7 +264,7 @@ screen_redraw_draw_number(struct client *c, struct > window_pane *wp) > { > struct tty *tty = &c->tty; > struct session *s = c->session; > - struct options *oo = &s->options; > + struct options *oo = &s->options; > struct window *w = wp->window; > struct grid_cell gc; > u_int idx, px, py, i, j, xoff, yoff; > @@ -272,7 +272,8 @@ screen_redraw_draw_number(struct client *c, struct > window_pane *wp) > char buf[16], *ptr; > size_t len; > > - idx = window_pane_index(w, wp); > + if (window_pane_index(wp, &idx) != 0) > + fatalx("index not found"); > len = xsnprintf(buf, sizeof buf, "%u", idx); > > if (wp->sx < len) > diff --git a/trunk/status.c b/trunk/status.c > index 5db40b4..ca3e9d4 100644 > --- a/trunk/status.c > +++ b/trunk/status.c > @@ -372,6 +372,7 @@ status_replace1(struct client *c, struct session *s, > struct winlink *wl, > char ch, tmp[256], *ptr, *endptr, *freeptr; > size_t ptrlen; > long limit; > + u_int idx; > > if (s == NULL) > s = c->session; > @@ -422,8 +423,10 @@ status_replace1(struct client *c, struct session *s, > struct winlink *wl, > ptr = tmp; > goto do_replace; > case 'P': > + if (window_pane_index(wp, &idx) != 0) > + fatalx("index not found"); > xsnprintf( > - tmp, sizeof tmp, "%u", window_pane_index(wl->window, wp)); > + tmp, sizeof tmp, "%u", idx); > ptr = tmp; > goto do_replace; > case 'S': > diff --git a/trunk/tmux.h b/trunk/tmux.h > index 08650d5..be8f296 100644 > --- a/trunk/tmux.h > +++ b/trunk/tmux.h > @@ -1927,7 +1927,7 @@ struct window_pane *window_pane_next_by_number(struct > window *, > struct window_pane *, u_int); > struct window_pane *window_pane_previous_by_number(struct window *, > struct window_pane *, u_int); > -u_int window_pane_index(struct window *, struct window_pane > *); > +int window_pane_index(struct window_pane *, u_int *); > u_int window_count_panes(struct window *); > void window_destroy_panes(struct window *); > struct window_pane *window_pane_find_by_id(u_int); > diff --git a/trunk/window.c b/trunk/window.c > index 8b82c06..e170dd2 100644 > --- a/trunk/window.c > +++ b/trunk/window.c > @@ -483,19 +483,21 @@ window_pane_previous_by_number(struct window *w, struct > window_pane *wp, > return (wp); > } > > -u_int > -window_pane_index(struct window *w, struct window_pane *wp) > +int > +window_pane_index(struct window_pane *wp, u_int *i) > { > struct window_pane *wq; > - u_int n; > + struct window *w = wp->window; > > - n = options_get_number(&w->options, "pane-base-index"); > + *i = options_get_number(&w->options, "pane-base-index"); > TAILQ_FOREACH(wq, &w->panes, entry) { > - if (wp == wq) > - break; > - n++; > + if (wp == wq) { > + return (0); > + } > + (*i)++; > } > - return (n); > + > + return (-1); > } > > u_int > -- > 1.7.6.4 > ------------------------------------------------------------------------------ RSA(R) Conference 2012 Save $700 by Nov 18 Register now http://p.sf.net/sfu/rsa-sfdev2dev1 _______________________________________________ tmux-users mailing list tmux-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/tmux-users