diff options
author | nicm <nicm> | 2013-11-22 20:58:36 +0000 |
---|---|---|
committer | nicm <nicm> | 2013-11-22 20:58:36 +0000 |
commit | 7aeb4473add76e11dd595919f81ff5d9cad28718 (patch) | |
tree | 811a8bbfee03396c144e57344634eae1cdcf3dae /cmd-new-window.c | |
parent | 72a4602b880357776d3a2ea7657cf88f3393c288 (diff) | |
download | rtmux-7aeb4473add76e11dd595919f81ff5d9cad28718.tar.gz rtmux-7aeb4473add76e11dd595919f81ff5d9cad28718.tar.bz2 rtmux-7aeb4473add76e11dd595919f81ff5d9cad28718.zip |
Handle empty current directory more gracefully.
Diffstat (limited to 'cmd-new-window.c')
-rw-r--r-- | cmd-new-window.c | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/cmd-new-window.c b/cmd-new-window.c index e2a01190..354d0ae5 100644 --- a/cmd-new-window.c +++ b/cmd-new-window.c @@ -117,13 +117,16 @@ cmd_new_window_exec(struct cmd *self, struct cmd_q *cmdq) cp = format_expand(ft, args_get(args, 'c')); 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); - } + if (cp != NULL && *cp != '\0') { + 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); + } + } else if (cp != NULL) + free(cp); cwd = fd; } else if (cmdq->client != NULL && cmdq->client->session == NULL) cwd = cmdq->client->cwd; |