version 1.17, 2016/10/10 21:51:39 |
version 1.18, 2016/10/16 19:04:05 |
|
|
* Select window by index. |
* Select window by index. |
*/ |
*/ |
|
|
static enum cmd_retval cmd_select_window_exec(struct cmd *, struct cmd_q *); |
static enum cmd_retval cmd_select_window_exec(struct cmd *, |
|
struct cmdq_item *); |
|
|
const struct cmd_entry cmd_select_window_entry = { |
const struct cmd_entry cmd_select_window_entry = { |
.name = "select-window", |
.name = "select-window", |
|
|
}; |
}; |
|
|
static enum cmd_retval |
static enum cmd_retval |
cmd_select_window_exec(struct cmd *self, struct cmd_q *cmdq) |
cmd_select_window_exec(struct cmd *self, struct cmdq_item *item) |
{ |
{ |
struct winlink *wl = cmdq->state.tflag.wl; |
struct winlink *wl = item->state.tflag.wl; |
struct session *s = cmdq->state.tflag.s; |
struct session *s = item->state.tflag.s; |
int next, previous, last, activity; |
int next, previous, last, activity; |
|
|
next = self->entry == &cmd_next_window_entry; |
next = self->entry == &cmd_next_window_entry; |
|
|
activity = args_has(self->args, 'a'); |
activity = args_has(self->args, 'a'); |
if (next) { |
if (next) { |
if (session_next(s, activity) != 0) { |
if (session_next(s, activity) != 0) { |
cmdq_error(cmdq, "no next window"); |
cmdq_error(item, "no next window"); |
return (CMD_RETURN_ERROR); |
return (CMD_RETURN_ERROR); |
} |
} |
} else if (previous) { |
} else if (previous) { |
if (session_previous(s, activity) != 0) { |
if (session_previous(s, activity) != 0) { |
cmdq_error(cmdq, "no previous window"); |
cmdq_error(item, "no previous window"); |
return (CMD_RETURN_ERROR); |
return (CMD_RETURN_ERROR); |
} |
} |
} else { |
} else { |
if (session_last(s) != 0) { |
if (session_last(s) != 0) { |
cmdq_error(cmdq, "no last window"); |
cmdq_error(item, "no last window"); |
return (CMD_RETURN_ERROR); |
return (CMD_RETURN_ERROR); |
} |
} |
} |
} |
|
|
*/ |
*/ |
if (args_has(self->args, 'T') && wl == s->curw) { |
if (args_has(self->args, 'T') && wl == s->curw) { |
if (session_last(s) != 0) { |
if (session_last(s) != 0) { |
cmdq_error(cmdq, "no last window"); |
cmdq_error(item, "no last window"); |
return (-1); |
return (-1); |
} |
} |
server_redraw_session(s); |
server_redraw_session(s); |