version 1.7, 2009/09/20 17:27:18 |
version 1.8, 2009/10/24 10:12:39 |
|
|
|
|
const struct cmd_entry cmd_kill_pane_entry = { |
const struct cmd_entry cmd_kill_pane_entry = { |
"kill-pane", "killp", |
"kill-pane", "killp", |
CMD_TARGET_PANE_USAGE, |
"[-a] " CMD_TARGET_PANE_USAGE, |
0, 0, |
0, CMD_CHFLAG('a'), |
cmd_target_init, |
cmd_target_init, |
cmd_target_parse, |
cmd_target_parse, |
cmd_kill_pane_exec, |
cmd_kill_pane_exec, |
|
|
{ |
{ |
struct cmd_target_data *data = self->data; |
struct cmd_target_data *data = self->data; |
struct winlink *wl; |
struct winlink *wl; |
struct window_pane *wp; |
struct window_pane *loopwp, *nextwp, *wp; |
|
|
if ((wl = cmd_find_pane(ctx, data->target, NULL, &wp)) == NULL) |
if ((wl = cmd_find_pane(ctx, data->target, NULL, &wp)) == NULL) |
return (-1); |
return (-1); |
|
|
return (0); |
return (0); |
} |
} |
|
|
layout_close_pane(wp); |
if (data->chflags & CMD_CHFLAG('a')) { |
window_remove_pane(wl->window, wp); |
loopwp = TAILQ_FIRST(&wl->window->panes); |
|
while (loopwp != NULL) { |
|
nextwp = TAILQ_NEXT(loopwp, entry); |
|
if (loopwp != wp) { |
|
layout_close_pane(loopwp); |
|
window_remove_pane(wl->window, loopwp); |
|
} |
|
loopwp = nextwp; |
|
} |
|
} else { |
|
layout_close_pane(wp); |
|
window_remove_pane(wl->window, wp); |
|
} |
server_redraw_window(wl->window); |
server_redraw_window(wl->window); |
|
|
return (0); |
return (0); |
} |
} |