version 1.24, 2009/09/01 14:40:33 |
version 1.25, 2009/09/16 12:35:04 |
|
|
struct environ_entry *envent; |
struct environ_entry *envent; |
const char *ptr; |
const char *ptr; |
struct timeval tv; |
struct timeval tv; |
|
struct termios tio2; |
u_int i; |
u_int i; |
|
|
if (wp->fd != -1) |
if (wp->fd != -1) |
|
|
tv.tv_usec = NAME_INTERVAL * 1000L; |
tv.tv_usec = NAME_INTERVAL * 1000L; |
timeradd(&wp->window->name_timer, &tv, &wp->window->name_timer); |
timeradd(&wp->window->name_timer, &tv, &wp->window->name_timer); |
|
|
switch (wp->pid = forkpty(&wp->fd, wp->tty, tio, &ws)) { |
switch (wp->pid = forkpty(&wp->fd, wp->tty, NULL, &ws)) { |
case -1: |
case -1: |
wp->fd = -1; |
wp->fd = -1; |
xasprintf(cause, "%s: %s", cmd, strerror(errno)); |
xasprintf(cause, "%s: %s", cmd, strerror(errno)); |
|
|
case 0: |
case 0: |
if (chdir(wp->cwd) != 0) |
if (chdir(wp->cwd) != 0) |
chdir("/"); |
chdir("/"); |
|
|
|
if (tcgetattr(STDIN_FILENO, &tio2) != 0) |
|
fatal("tcgetattr failed"); |
|
if (tio != NULL) |
|
memcpy(tio2.c_cc, tio->c_cc, sizeof tio2.c_cc); |
|
tio2.c_cc[VERASE] = '\177'; |
|
if (tcsetattr(STDIN_FILENO, TCSANOW, &tio2) != 0) |
|
fatal("tcgetattr failed"); |
|
|
ARRAY_INIT(&varlist); |
ARRAY_INIT(&varlist); |
for (varp = environ; *varp != NULL; varp++) { |
for (varp = environ; *varp != NULL; varp++) { |