version 1.4, 2009/08/13 19:04:00 |
version 1.5, 2009/08/13 20:11:58 |
|
|
/* Create a new session. */ |
/* Create a new session. */ |
struct session * |
struct session * |
session_create(const char *name, const char *cmd, const char *cwd, |
session_create(const char *name, const char *cmd, const char *cwd, |
struct environ *env, struct termios *tio, u_int sx, u_int sy, char **cause) |
struct environ *env, struct termios *tio, int idx, u_int sx, u_int sy, |
|
char **cause) |
{ |
{ |
struct session *s; |
struct session *s; |
u_int i; |
u_int i; |
|
|
s->name = xstrdup(name); |
s->name = xstrdup(name); |
else |
else |
xasprintf(&s->name, "%u", i); |
xasprintf(&s->name, "%u", i); |
if (session_new(s, NULL, cmd, cwd, -1, cause) == NULL) { |
if (session_new(s, NULL, cmd, cwd, idx, cause) == NULL) { |
session_destroy(s); |
session_destroy(s); |
return (NULL); |
return (NULL); |
} |
} |
session_select(s, 0); |
session_select(s, RB_ROOT(&s->windows)->idx); |
|
|
log_debug("session %s created", s->name); |
log_debug("session %s created", s->name); |
|
|