summaryrefslogtreecommitdiffstats
path: root/cmd-find.c
diff options
context:
space:
mode:
authorThomas Adam <thomas@xteddy.org>2016-10-16 22:01:14 +0100
committerThomas Adam <thomas@xteddy.org>2016-10-16 22:01:14 +0100
commit1a6e696b08113ca17ee8e881844167cf94276846 (patch)
tree60ecdd8c9e51bff46624e48d9373686b858d2fb1 /cmd-find.c
parentd401340c516131ae8e07bfb978b670347486d077 (diff)
parentd15d54c2c8e6b95695169442eb2a27d814efc078 (diff)
Merge branch 'obsd-master'
Diffstat (limited to 'cmd-find.c')
-rw-r--r--cmd-find.c82
1 files changed, 42 insertions, 40 deletions
diff --git a/cmd-find.c b/cmd-find.c
index dc4cd889..a2f9aa4e 100644
--- a/cmd-find.c
+++ b/cmd-find.c
@@ -37,7 +37,7 @@ static int cmd_find_best_winlink_with_window(struct cmd_find_state *);
static int cmd_find_current_session_with_client(struct cmd_find_state *);
static int cmd_find_current_session(struct cmd_find_state *);
-static struct client *cmd_find_current_client(struct cmd_q *);
+static struct client *cmd_find_current_client(struct cmdq_item *);
static const char *cmd_find_map_table(const char *[][2], const char *);
@@ -191,8 +191,8 @@ cmd_find_best_session_with_window(struct cmd_find_state *fs)
u_int ssize;
struct session *s;
- if (fs->cmdq != NULL && fs->cmdq->client != NULL) {
- fs->s = cmd_find_try_TMUX(fs->cmdq->client, fs->w);
+ if (fs->item != NULL && fs->item->client != NULL) {
+ fs->s = cmd_find_try_TMUX(fs->item->client, fs->w);
if (fs->s != NULL)
return (cmd_find_best_winlink_with_window(fs));
}
@@ -255,9 +255,9 @@ cmd_find_current_session_with_client(struct cmd_find_state *fs)
* sessions to those containing that pane (we still use the current
* window in the best session).
*/
- if (fs->cmdq != NULL && fs->cmdq->client->tty.path != NULL) {
+ if (fs->item != NULL && fs->item->client->tty.path != NULL) {
RB_FOREACH(wp, window_pane_tree, &all_window_panes) {
- if (strcmp(wp->tty, fs->cmdq->client->tty.path) == 0)
+ if (strcmp(wp->tty, fs->item->client->tty.path) == 0)
break;
}
} else
@@ -291,8 +291,8 @@ cmd_find_current_session_with_client(struct cmd_find_state *fs)
unknown_pane:
fs->s = NULL;
- if (fs->cmdq != NULL)
- fs->s = cmd_find_try_TMUX(fs->cmdq->client, NULL);
+ if (fs->item != NULL)
+ fs->s = cmd_find_try_TMUX(fs->item->client, NULL);
if (fs->s == NULL)
fs->s = cmd_find_best_session(NULL, 0, fs->flags);
if (fs->s == NULL)
@@ -313,12 +313,12 @@ static int
cmd_find_current_session(struct cmd_find_state *fs)
{
/* If we know the current client, use it. */
- if (fs->cmdq != NULL && fs->cmdq->client != NULL) {
- log_debug("%s: have client %p%s", __func__, fs->cmdq->client,
- fs->cmdq->client->session == NULL ? "" : " (with session)");
- if (fs->cmdq->client->session == NULL)
+ if (fs->item != NULL && fs->item->client != NULL) {
+ log_debug("%s: have client %p%s", __func__, fs->item->client,
+ fs->item->client->session == NULL ? "" : " (with session)");
+ if (fs->item->client->session == NULL)
return (cmd_find_current_session_with_client(fs));
- fs->s = fs->cmdq->client->session;
+ fs->s = fs->item->client->session;
fs->wl = fs->s->curw;
fs->idx = fs->wl->idx;
fs->w = fs->wl->window;
@@ -340,7 +340,7 @@ cmd_find_current_session(struct cmd_find_state *fs)
/* Work out the best current client. */
static struct client *
-cmd_find_current_client(struct cmd_q *cmdq)
+cmd_find_current_client(struct cmdq_item *item)
{
struct cmd_find_state current;
struct session *s;
@@ -348,14 +348,14 @@ cmd_find_current_client(struct cmd_q *cmdq)
u_int csize;
/* If the queue client has a session, use it. */
- if (cmdq->client != NULL && cmdq->client->session != NULL) {
- log_debug("%s: using cmdq %p client %p", __func__, cmdq,
- cmdq->client);
- return (cmdq->client);
+ if (item->client != NULL && item->client->session != NULL) {
+ log_debug("%s: using item %p client %p", __func__, item,
+ item->client);
+ return (item->client);
}
/* Otherwise find the current session. */
- cmd_find_clear_state(&current, cmdq, 0);
+ cmd_find_clear_state(&current, item, 0);
if (cmd_find_current_session(&current) != 0)
return (NULL);
@@ -792,11 +792,12 @@ cmd_find_get_pane_with_window(struct cmd_find_state *fs, const char *pane)
/* Clear state. */
void
-cmd_find_clear_state(struct cmd_find_state *fs, struct cmd_q *cmdq, int flags)
+cmd_find_clear_state(struct cmd_find_state *fs, struct cmdq_item *item,
+ int flags)
{
memset(fs, 0, sizeof *fs);
- fs->cmdq = cmdq;
+ fs->item = item;
fs->flags = flags;
fs->idx = -1;
@@ -951,12 +952,12 @@ cmd_find_from_pane(struct cmd_find_state *fs, struct window_pane *wp)
/* Find current state. */
int
-cmd_find_current(struct cmd_find_state *fs, struct cmd_q *cmdq, int flags)
+cmd_find_current(struct cmd_find_state *fs, struct cmdq_item *item, int flags)
{
- cmd_find_clear_state(fs, cmdq, flags);
+ cmd_find_clear_state(fs, item, flags);
if (cmd_find_current_session(fs) != 0) {
if (~flags & CMD_FIND_QUIET)
- cmdq_error(cmdq, "no current session");
+ cmdq_error(item, "no current session");
return (-1);
}
return (0);
@@ -968,7 +969,8 @@ cmd_find_current(struct cmd_find_state *fs, struct cmd_q *cmdq, int flags)
*/
int
cmd_find_target(struct cmd_find_state *fs, struct cmd_find_state *current,
- struct cmd_q *cmdq, const char *target, enum cmd_find_type type, int flags)
+ struct cmdq_item *item, const char *target, enum cmd_find_type type,
+ int flags)
{
struct mouse_event *m;
char *colon, *period, *copy = NULL;
@@ -979,17 +981,17 @@ cmd_find_target(struct cmd_find_state *fs, struct cmd_find_state *current,
log_debug("%s: target none, type %d", __func__, type);
else
log_debug("%s: target %s, type %d", __func__, target, type);
- log_debug("%s: cmdq %p, flags %#x", __func__, cmdq, flags);
+ log_debug("%s: item %p, flags %#x", __func__, item, flags);
/* Clear new state. */
- cmd_find_clear_state(fs, cmdq, flags);
+ cmd_find_clear_state(fs, item, flags);
/* Find current state. */
if (server_check_marked() && (flags & CMD_FIND_DEFAULT_MARKED)) {
fs->current = &marked_pane;
log_debug(" current is marked pane");
- } else if (cmd_find_valid_state(&cmdq->current)) {
- fs->current = &cmdq->current;
+ } else if (cmd_find_valid_state(&item->current)) {
+ fs->current = &item->current;
log_debug(" current is from queue");
} else {
fs->current = current;
@@ -1005,7 +1007,7 @@ cmd_find_target(struct cmd_find_state *fs, struct cmd_find_state *current,
/* Mouse target is a plain = or {mouse}. */
if (strcmp(target, "=") == 0 || strcmp(target, "{mouse}") == 0) {
- m = &cmdq->mouse;
+ m = &item->mouse;
switch (type) {
case CMD_FIND_PANE:
fs->wp = cmd_mouse_pane(m, &fs->s, &fs->wl);
@@ -1023,7 +1025,7 @@ cmd_find_target(struct cmd_find_state *fs, struct cmd_find_state *current,
}
if (fs->wp == NULL) {
if (~flags & CMD_FIND_QUIET)
- cmdq_error(cmdq, "no mouse target");
+ cmdq_error(item, "no mouse target");
goto error;
}
goto found;
@@ -1033,7 +1035,7 @@ cmd_find_target(struct cmd_find_state *fs, struct cmd_find_state *current,
if (strcmp(target, "~") == 0 || strcmp(target, "{marked}") == 0) {
if (!server_check_marked()) {
if (~flags & CMD_FIND_QUIET)
- cmdq_error(cmdq, "no marked target");
+ cmdq_error(item, "no marked target");
goto error;
}
cmd_find_copy_state(fs, &marked_pane);
@@ -1119,7 +1121,7 @@ cmd_find_target(struct cmd_find_state *fs, struct cmd_find_state *current,
/* No pane is allowed if want an index. */
if (pane != NULL && (flags & CMD_FIND_WINDOW_INDEX)) {
if (~flags & CMD_FIND_QUIET)
- cmdq_error(cmdq, "can't specify pane here");
+ cmdq_error(item, "can't specify pane here");
goto error;
}
@@ -1218,23 +1220,23 @@ found:
no_session:
if (~flags & CMD_FIND_QUIET)
- cmdq_error(cmdq, "can't find session %s", session);
+ cmdq_error(item, "can't find session %s", session);
goto error;
no_window:
if (~flags & CMD_FIND_QUIET)
- cmdq_error(cmdq, "can't find window %s", window);
+ cmdq_error(item, "can't find window %s", window);
goto error;
no_pane:
if (~flags & CMD_FIND_QUIET)
- cmdq_error(cmdq, "can't find pane %s", pane);
+ cmdq_error(item, "can't find pane %s", pane);
goto error;
}
/* Find the target client or report an error and return NULL. */
struct client *
-cmd_find_client(struct cmd_q *cmdq, const char *target, int quiet)
+cmd_find_client(struct cmdq_item *item, const char *target, int quiet)
{
struct client *c;
char *copy;
@@ -1242,10 +1244,10 @@ cmd_find_client(struct cmd_q *cmdq, const char *target, int quiet)
const char *path;
/* A NULL argument means the current client. */
- if (cmdq != NULL && target == NULL) {
- c = cmd_find_current_client(cmdq);
+ if (item != NULL && target == NULL) {
+ c = cmd_find_current_client(item);
if (c == NULL && !quiet)
- cmdq_error(cmdq, "no current client");
+ cmdq_error(item, "no current client");
log_debug("%s: no target, return %p", __func__, c);
return (c);
}
@@ -1275,7 +1277,7 @@ cmd_find_client(struct cmd_q *cmdq, const char *target, int quiet)
/* If no client found, report an error. */
if (c == NULL && !quiet)
- cmdq_error(cmdq, "can't find client %s", copy);
+ cmdq_error(item, "can't find client %s", copy);
free(copy);
log_debug("%s: target %s, return %p", __func__, target, c);