diff options
author | nicm <nicm> | 2017-05-28 19:46:55 +0000 |
---|---|---|
committer | nicm <nicm> | 2017-05-28 19:46:55 +0000 |
commit | dbc8cae18cabcd6e4d0ccfecda963563a514df52 (patch) | |
tree | 91af58bd16cad4d80ee755602d200e418bf38f26 | |
parent | 385bf084a5db9f889352aae5f55d7a52b23afc72 (diff) | |
download | rtmux-dbc8cae18cabcd6e4d0ccfecda963563a514df52.tar.gz rtmux-dbc8cae18cabcd6e4d0ccfecda963563a514df52.tar.bz2 rtmux-dbc8cae18cabcd6e4d0ccfecda963563a514df52.zip |
Change so that sessions created detached (-d or no client) are always
80x24 and the status line is not applied until they attach. Also make -x
and -y work for control clients whether the session is detached or not.
-rw-r--r-- | cmd-new-session.c | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/cmd-new-session.c b/cmd-new-session.c index 1813288d..efddc228 100644 --- a/cmd-new-session.c +++ b/cmd-new-session.c @@ -77,6 +77,7 @@ cmd_new_session_exec(struct cmd *self, struct cmdq_item *item) const char *path, *cmd, *cwd, *to_free = NULL; char **argv, *cause, *cp; int detached, already_attached, idx, argc; + int is_control = 0; u_int sx, sy; struct environ_entry *envent; struct cmd_find_state fs; @@ -139,6 +140,8 @@ cmd_new_session_exec(struct cmd *self, struct cmdq_item *item) detached = args_has(args, 'd'); if (c == NULL) detached = 1; + else if (c->flags & CLIENT_CONTROL) + is_control = 1; /* Is this client already attached? */ already_attached = 0; @@ -185,29 +188,31 @@ cmd_new_session_exec(struct cmd *self, struct cmdq_item *item) } /* Find new session size. */ - if (c != NULL) { + if (!detached) { sx = c->tty.sx; sy = c->tty.sy; + if (!is_control && + sy > 0 && + options_get_number(global_s_options, "status")) + sy--; } else { sx = 80; sy = 24; } - if (detached && args_has(args, 'x')) { + if ((is_control || detached) && args_has(args, 'x')) { sx = strtonum(args_get(args, 'x'), 1, USHRT_MAX, &errstr); if (errstr != NULL) { cmdq_error(item, "width %s", errstr); goto error; } } - if (detached && args_has(args, 'y')) { + if ((is_control || detached) && args_has(args, 'y')) { sy = strtonum(args_get(args, 'y'), 1, USHRT_MAX, &errstr); if (errstr != NULL) { cmdq_error(item, "height %s", errstr); goto error; } } - if (sy > 0 && options_get_number(global_s_options, "status")) - sy--; if (sx == 0) sx = 1; if (sy == 0) |