summaryrefslogtreecommitdiffstats
path: root/cmd-attach-session.c
diff options
context:
space:
mode:
authornicm <nicm>2015-09-16 22:29:30 +0000
committernicm <nicm>2015-09-16 22:29:30 +0000
commitd1b73be6e18a9576f4dc3bac73d7e1cc1a135938 (patch)
tree2326f48b97b1d3d5d959ea54ba2bea2e1ee57b9b /cmd-attach-session.c
parenta4b4b299875d833019cb829ca1bee41d71724f37 (diff)
Hoist some common code out of both branches of an if/else.
Diffstat (limited to 'cmd-attach-session.c')
-rw-r--r--cmd-attach-session.c54
1 files changed, 18 insertions, 36 deletions
diff --git a/cmd-attach-session.c b/cmd-attach-session.c
index a2ae49cb..a7ef1cd9 100644
--- a/cmd-attach-session.c
+++ b/cmd-attach-session.c
@@ -93,6 +93,24 @@ cmd_attach_session(struct cmd_q *cmdq, const char *tflag, int dflag, int rflag,
session_set_current(s, wl);
}
+ if (cflag != NULL) {
+ ft = format_create();
+ format_defaults(ft, cmd_find_client(cmdq, NULL, 1), s,
+ NULL, NULL);
+ cp = format_expand(ft, cflag);
+ format_free(ft);
+
+ fd = open(cp, O_RDONLY|O_DIRECTORY);
+ free(cp);
+ if (fd == -1) {
+ cmdq_error(cmdq, "bad working directory: %s",
+ strerror(errno));
+ return (CMD_RETURN_ERROR);
+ }
+ close(s->cwd);
+ s->cwd = fd;
+ }
+
if (c->session != NULL) {
if (dflag) {
/*
@@ -108,24 +126,6 @@ cmd_attach_session(struct cmd_q *cmdq, const char *tflag, int dflag, int rflag,
}
}
- if (cflag != NULL) {
- ft = format_create();
- format_defaults(ft, cmd_find_client(cmdq, NULL, 1), s,
- NULL, NULL);
- cp = format_expand(ft, cflag);
- format_free(ft);
-
- fd = open(cp, O_RDONLY|O_DIRECTORY);
- free(cp);
- if (fd == -1) {
- cmdq_error(cmdq, "bad working directory: %s",
- strerror(errno));
- return (CMD_RETURN_ERROR);
- }
- close(s->cwd);
- s->cwd = fd;
- }
-
if (!Eflag) {
update = options_get_string(&s->options,
"update-environment");
@@ -146,24 +146,6 @@ cmd_attach_session(struct cmd_q *cmdq, const char *tflag, int dflag, int rflag,
return (CMD_RETURN_ERROR);
}
- if (cflag != NULL) {
- ft = format_create();
- format_defaults(ft, cmd_find_client(cmdq, NULL, 1), s,
- NULL, NULL);
- cp = format_expand(ft, cflag);
- format_free(ft);
-
- fd = open(cp, O_RDONLY|O_DIRECTORY);
- free(cp);
- if (fd == -1) {
- cmdq_error(cmdq, "bad working directory: %s",
- strerror(errno));
- return (CMD_RETURN_ERROR);
- }
- close(s->cwd);
- s->cwd = fd;
- }
-
if (rflag)
c->flags |= CLIENT_READONLY;