PatchSet 923

Date: 2011/06/05 11:53:05
Author: nicm
Branch: HEAD
Tag: (none)
Log:
Get rid of the layout string code which tries to walk through the layout
hierarchy and instead just look at what panes are actually in the window.
This commit is contained in:
Nicholas Marriott
2011-06-23 19:21:26 +00:00
parent ddade84e0a
commit fa0f10d77a
5 changed files with 77 additions and 196 deletions

20
cmd.c
View File

@ -1,4 +1,4 @@
/* $Id: cmd.c,v 1.153 2011-05-18 20:30:36 tcunha Exp $ */
/* $Id$ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@ -1057,12 +1057,11 @@ struct winlink *
cmd_find_pane(struct cmd_ctx *ctx,
const char *arg, struct session **sp, struct window_pane **wpp)
{
struct session *s;
struct winlink *wl;
struct layout_cell *lc;
const char *period, *errstr;
char *winptr, *paneptr;
u_int idx;
struct session *s;
struct winlink *wl;
const char *period, *errstr;
char *winptr, *paneptr;
u_int idx;
/* Get the current session. */
if ((s = cmd_current_session(ctx, 0)) == NULL) {
@ -1118,11 +1117,10 @@ cmd_find_pane(struct cmd_ctx *ctx,
lookup_string:
/* Try pane string description. */
if ((lc = layout_find_string(wl->window, paneptr)) == NULL) {
if ((*wpp = window_find_string(wl->window, paneptr)) == NULL) {
ctx->error(ctx, "can't find pane: %s", paneptr);
goto error;
}
*wpp = lc->wp;
xfree(winptr);
return (wl);
@ -1141,10 +1139,8 @@ no_period:
lookup_window:
/* Try pane string description. */
if ((lc = layout_find_string(s->curw->window, arg)) != NULL) {
*wpp = lc->wp;
if ((*wpp = window_find_string(s->curw->window, arg)) != NULL)
return (s->curw);
}
/* Try as a window and use the active pane. */
if ((wl = cmd_find_window(ctx, arg, sp)) != NULL)