version 1.131, 2020/05/16 14:49:50 |
version 1.132, 2020/05/16 15:25:24 |
|
|
.name = "new-session", |
.name = "new-session", |
.alias = "new", |
.alias = "new", |
|
|
.args = { "Ac:dDEF:n:Ps:t:x:Xy:", 0, -1 }, |
.args = { "Ac:dDe:EF:n:Ps:t:x:Xy:", 0, -1 }, |
.usage = "[-AdDEPX] [-c start-directory] [-F format] [-n window-name] " |
.usage = "[-AdDEPX] [-c start-directory] [-e environment] [-F format] " |
"[-s session-name] " CMD_TARGET_SESSION_USAGE " [-x width] " |
"[-n window-name] [-s session-name] " |
"[-y height] [command]", |
CMD_TARGET_SESSION_USAGE " [-x width] [-y height] [command]", |
|
|
.target = { 't', CMD_FIND_SESSION, CMD_FIND_CANFAIL }, |
.target = { 't', CMD_FIND_SESSION, CMD_FIND_CANFAIL }, |
|
|
|
|
struct options *oo; |
struct options *oo; |
struct termios tio, *tiop; |
struct termios tio, *tiop; |
struct session_group *sg = NULL; |
struct session_group *sg = NULL; |
const char *errstr, *template, *group, *tmp; |
const char *errstr, *template, *group, *tmp, *add; |
char *cause, *cwd = NULL, *cp, *newname = NULL; |
char *cause, *cwd = NULL, *cp, *newname = NULL; |
char *name, *prefix = NULL; |
char *name, *prefix = NULL; |
int detached, already_attached, is_control = 0; |
int detached, already_attached, is_control = 0; |
|
|
struct spawn_context sc; |
struct spawn_context sc; |
enum cmd_retval retval; |
enum cmd_retval retval; |
struct cmd_find_state fs; |
struct cmd_find_state fs; |
|
struct args_value *value; |
|
|
if (cmd_get_entry(self) == &cmd_has_session_entry) { |
if (cmd_get_entry(self) == &cmd_has_session_entry) { |
/* |
/* |
|
|
env = environ_create(); |
env = environ_create(); |
if (c != NULL && !args_has(args, 'E')) |
if (c != NULL && !args_has(args, 'E')) |
environ_update(global_s_options, c->environ, env); |
environ_update(global_s_options, c->environ, env); |
|
add = args_first_value(args, 'e', &value); |
|
while (add != NULL) { |
|
environ_put(env, add, 0); |
|
add = args_next_value(&value); |
|
} |
s = session_create(prefix, newname, cwd, env, oo, tiop); |
s = session_create(prefix, newname, cwd, env, oo, tiop); |
|
|
/* Spawn the initial window. */ |
/* Spawn the initial window. */ |