version 1.6, 2015/04/28 12:09:24 |
version 1.7, 2015/05/07 11:42:56 |
|
|
RB_FOREACH(s, sessions, &sessions) { |
RB_FOREACH(s, sessions, &sessions) { |
if (!session_has(s, fs->w)) |
if (!session_has(s, fs->w)) |
continue; |
continue; |
slist = xreallocarray (slist, ssize + 1, sizeof *slist); |
slist = xreallocarray(slist, ssize + 1, sizeof *slist); |
slist[ssize++] = s; |
slist[ssize++] = s; |
} |
} |
if (ssize == 0) |
if (ssize == 0) |
|
|
fs->s = cmd_find_best_session(slist, ssize, fs->flags); |
fs->s = cmd_find_best_session(slist, ssize, fs->flags); |
if (fs->s == NULL) |
if (fs->s == NULL) |
goto fail; |
goto fail; |
free (slist); |
free(slist); |
return (cmd_find_best_winlink_with_window(fs)); |
return (cmd_find_best_winlink_with_window(fs)); |
|
|
fail: |
fail: |
|
|
TAILQ_FOREACH(c, &clients, entry) { |
TAILQ_FOREACH(c, &clients, entry) { |
if (c->session != s) |
if (c->session != s) |
continue; |
continue; |
clist = xreallocarray (clist, csize + 1, sizeof *clist); |
clist = xreallocarray(clist, csize + 1, sizeof *clist); |
clist[csize++] = c; |
clist[csize++] = c; |
} |
} |
if (csize != 0) { |
if (csize != 0) { |
|
|
void |
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 cmd_q *cmdq, int flags) |
{ |
{ |
memset (fs, 0, sizeof *fs); |
memset(fs, 0, sizeof *fs); |
|
|
fs->cmdq = cmdq; |
fs->cmdq = cmdq; |
fs->flags = flags; |
fs->flags = flags; |