diff options
-rw-r--r-- | client.c | 6 | ||||
-rw-r--r-- | tmux.c | 9 |
2 files changed, 7 insertions, 8 deletions
@@ -36,7 +36,7 @@ void client_handle_winch(struct client_ctx *); int -client_init(char *path, struct client_ctx *cctx, int start_server, int flags) +client_init(char *path, struct client_ctx *cctx, int cmdflags, int flags) { struct sockaddr_un sa; struct stat sb; @@ -53,7 +53,7 @@ client_init(char *path, struct client_ctx *cctx, int start_server, int flags) setproctitle("client (%s)", rpathbuf); if (lstat(path, &sb) != 0) { - if (start_server && errno == ENOENT) { + if (cmdflags & CMD_STARTSERVER && errno == ENOENT) { if ((cctx->srv_fd = server_start(path)) == -1) goto start_failed; goto server_started; @@ -79,7 +79,7 @@ client_init(char *path, struct client_ctx *cctx, int start_server, int flags) if (connect( cctx->srv_fd, (struct sockaddr *) &sa, SUN_LEN(&sa)) == -1) { if (errno == ECONNREFUSED) { - if (unlink(path) != 0 || !start_server) + if (unlink(path) != 0 || !(cmdflags & CMD_STARTSERVER)) goto not_found; if ((cctx->srv_fd = server_start(path)) == -1) goto start_failed; @@ -213,7 +213,7 @@ main(int argc, char **argv) struct passwd *pw; char *s, *path, *label, *cause, *home, *pass = NULL; char cwd[MAXPATHLEN]; - int retcode, opt, flags, unlock, start_server; + int retcode, opt, flags, unlock, cmdflags = 0; unlock = flags = 0; label = path = NULL; @@ -390,7 +390,7 @@ main(int argc, char **argv) cmdlist = NULL; if ((pass = getpass("Password: ")) == NULL) exit(1); - start_server = 0; + cmdflags &= ~CMD_STARTSERVER; } else { if (argc == 0) { cmd = xmalloc(sizeof *cmd); @@ -407,17 +407,16 @@ main(int argc, char **argv) exit(1); } } - start_server = 0; TAILQ_FOREACH(cmd, cmdlist, qentry) { if (cmd->entry->flags & CMD_STARTSERVER) { - start_server = 1; + cmdflags |= CMD_STARTSERVER; break; } } } memset(&cctx, 0, sizeof cctx); - if (client_init(path, &cctx, start_server, flags) != 0) + if (client_init(path, &cctx, cmdflags, flags) != 0) exit(1); xfree(path); |