summaryrefslogtreecommitdiffstats
path: root/usr.bin/tmux/cmd-queue.c
diff options
context:
space:
mode:
authornicm <nicm@openbsd.org>2013-10-10 12:07:36 +0000
committernicm <nicm@openbsd.org>2013-10-10 12:07:36 +0000
commit8a403d25b146c7f476f4429cf37fd6dbb747c66e (patch)
tree523204c719648ca2335fa6aa3781bdfa7d587d38 /usr.bin/tmux/cmd-queue.c
parentMake cmdq->client_exit a tristate (-1 means "not set") so that if (diff)
downloadwireguard-openbsd-8a403d25b146c7f476f4429cf37fd6dbb747c66e.tar.xz
wireguard-openbsd-8a403d25b146c7f476f4429cf37fd6dbb747c66e.zip
Support -c for new-session, based on code from J Raynor.
Diffstat (limited to 'usr.bin/tmux/cmd-queue.c')
-rw-r--r--usr.bin/tmux/cmd-queue.c26
1 files changed, 25 insertions, 1 deletions
diff --git a/usr.bin/tmux/cmd-queue.c b/usr.bin/tmux/cmd-queue.c
index c1b38a03556..0e3a8c2fb6d 100644
--- a/usr.bin/tmux/cmd-queue.c
+++ b/usr.bin/tmux/cmd-queue.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: cmd-queue.c,v 1.11 2013/10/10 12:04:38 nicm Exp $ */
+/* $OpenBSD: cmd-queue.c,v 1.12 2013/10/10 12:07:36 nicm Exp $ */
/*
* Copyright (c) 2013 Nicholas Marriott <nicm@users.sourceforge.net>
@@ -283,3 +283,27 @@ cmdq_flush(struct cmd_q *cmdq)
}
cmdq->item = NULL;
}
+
+/* Get default path using command queue. */
+const char *
+cmdq_default_path(struct cmd_q *cmdq, const char *cwd)
+{
+ struct client *c = cmdq->client;
+ struct session *s;
+ const char *current;
+
+ if ((s = cmd_current_session(cmdq, 0)) == NULL)
+ return (NULL);
+
+ if (cwd == NULL)
+ cwd = options_get_string(&s->options, "default-path");
+
+ if (c != NULL && c->session == NULL && c->cwd != NULL)
+ current = c->cwd;
+ else if (s->curw != NULL)
+ current = get_proc_cwd(s->curw->window->active->fd);
+ else
+ current = NULL;
+
+ return (cmd_default_path(s->cwd, current, cwd));
+}