static char *sccsid
= "@(#)wwopen.c 1.5 83/07/22";
wwopen(mode
, id
, nrow
, ncol
, row
, col
)
register struct ww
*w
= 0;
w
= (struct ww
*)calloc(sizeof (struct ww
), 1);
w
->ww_pty
= w
->ww_tty
= -1;
if (wwsettty(w
->ww_pty
, &wwoldtty
) < 0)
if ((w
->ww_win
= Wopen(id
, col
, row
, ncol
, nrow
, ncol
, 48)) == 0)
Woncursor(w
->ww_win
, 0); /* don't show cursor */
w
->ww_w
.col
= w
->ww_i
.col
= w
->ww_o
.col
= col
;
w
->ww_w
.row
= w
->ww_i
.row
= w
->ww_o
.row
= row
;
w
->ww_w
.ncol
= w
->ww_i
.ncol
= w
->ww_o
.ncol
= ncol
;
w
->ww_w
.nrow
= w
->ww_i
.nrow
= w
->ww_o
.nrow
= nrow
;
w
->ww_state
= WW_INITIAL
;
for (c
= 'p'; c
<= 's'; c
++) {
line
[sizeof PTY
- 6] = 'p';
line
[sizeof PTY
- 3] = c
;
line
[sizeof PTY
- 2] = '0';
if (stat(line
, &stb
) < 0)
for (i
= 0; i
< 16; i
++) {
line
[sizeof PTY
- 6] = 'p';
line
[sizeof PTY
- 2] = "0123456789abcdef"[i
];
w
->ww_pty
= open(line
, 2);
line
[sizeof PTY
- 6] = 't';
w
->ww_tty
= open(line
, 2);
strcpy(w
->ww_ttyname
, line
);