summaryrefslogtreecommitdiffstats
path: root/spawn.c
diff options
context:
space:
mode:
authornicm <nicm>2020-04-13 10:59:58 +0000
committernicm <nicm>2020-04-13 10:59:58 +0000
commit04cdd035250b93b728678d515b69690653dced4e (patch)
tree34edc5f4affb9a640a95c7d531eb06770b6ea3c9 /spawn.c
parentc20eb0c0ae3347c768894a6355adfd7ebae6f2f3 (diff)
Also move cmdq_item and cmdq_list into cmd-queue.c (this is to make its
use more clearly defined and preparation for some future work).
Diffstat (limited to 'spawn.c')
-rw-r--r--spawn.c19
1 files changed, 8 insertions, 11 deletions
diff --git a/spawn.c b/spawn.c
index 865a77e2..49ab2a1e 100644
--- a/spawn.c
+++ b/spawn.c
@@ -56,10 +56,10 @@ spawn_log(const char *from, struct spawn_context *sc)
struct session *s = sc->s;
struct winlink *wl = sc->wl;
struct window_pane *wp0 = sc->wp0;
+ const char *name = cmdq_get_name(sc->item);
char tmp[128];
- const char *name;
- log_debug("%s: %s, flags=%#x", from, sc->item->name, sc->flags);
+ log_debug("%s: %s, flags=%#x", from, name, sc->flags);
if (wl != NULL && wp0 != NULL)
xsnprintf(tmp, sizeof tmp, "wl=%d wp0=%%%u", wl->idx, wp0->id);
@@ -70,18 +70,14 @@ spawn_log(const char *from, struct spawn_context *sc)
else
xsnprintf(tmp, sizeof tmp, "wl=none wp0=none");
log_debug("%s: s=$%u %s idx=%d", from, s->id, tmp, sc->idx);
-
- name = sc->name;
- if (name == NULL)
- name = "none";
- log_debug("%s: name=%s", from, name);
+ log_debug("%s: name=%s", from, sc->name == NULL ? "none" : sc->name);
}
struct winlink *
spawn_window(struct spawn_context *sc, char **cause)
{
struct cmdq_item *item = sc->item;
- struct client *c = item->client;
+ struct client *c = cmdq_get_client(item);
struct session *s = sc->s;
struct window *w;
struct window_pane *wp;
@@ -207,7 +203,8 @@ struct window_pane *
spawn_pane(struct spawn_context *sc, char **cause)
{
struct cmdq_item *item = sc->item;
- struct client *c = item->client;
+ struct cmd_find_state *target = cmdq_get_target(item);
+ struct client *c = cmdq_get_client(item);
struct session *s = sc->s;
struct window *w = sc->wl->window;
struct window_pane *new_wp;
@@ -230,9 +227,9 @@ spawn_pane(struct spawn_context *sc, char **cause)
* the pane's stored one unless specified.
*/
if (sc->cwd != NULL)
- cwd = format_single(item, sc->cwd, c, item->target.s, NULL, NULL);
+ cwd = format_single(item, sc->cwd, c, target->s, NULL, NULL);
else if (~sc->flags & SPAWN_RESPAWN)
- cwd = xstrdup(server_client_get_cwd(c, item->target.s));
+ cwd = xstrdup(server_client_get_cwd(c, target->s));
else
cwd = NULL;