static char *sccsid
= "@(#)wwenviron.c 3.3 83/08/31";
* Set up the environment of this process to run in window 'wp'.
* Can't report errors in any intelligent way, so don't.
(void) dup2(wp
->ww_tty
, 0);
(void) dup2(wp
->ww_tty
, 1);
(void) dup2(wp
->ww_tty
, 2);
for (i
= wwdtablesize
- 1; i
> 2; i
--)
if (ioctl(i
, (int)TIOCNOTTY
, (char *)0) < 0) {
perror("ioctl(TIOCNOTTY)");
if (open(wp
->ww_ttyname
, 0) < 0) {
for (i
= 0, p
= environ
; *p
; p
++, i
++)
if ((env
= (char **)malloc((unsigned)(i
+ 3) * sizeof (char *))) == 0)
if ((tbuf
= malloc((unsigned) 1024)) == 0)
for (p
= environ
, q
= env
; *p
; p
++, q
++) {
if (strncmp(*p
, "TERM=", 5) == 0)
else if (strncmp(*p
, "TERMCAP=", 8) == 0)
*termcap
= sprintf(tbuf
, "TERMCAP=%sco#%d:li#%d:",
WWT_TERMCAP
, wp
->ww_w
.nc
, wp
->ww_w
.nr
);
if (wwavailmodes
& WWM_REV
)
(void) strcat(tbuf
, WWT_REV
);
if (wwavailmodes
& WWM_UL
)
(void) strcat(tbuf
, WWT_UL
);
(void) strcat(tbuf
, wwkeys
);