-
-struct ww *
-openwin(id, row, col, nrow, ncol, nline, label)
-int id, nrow, ncol, row, col;
-char *label;
-{
- register struct ww *w;
-
- if (id < 0 && (id = findid()) < 0)
- return 0;
- if (row + nrow <= 0 || row > wwnrow - 1
- || col + ncol <= 0 || col > wwncol - 1) {
- error("Illegal window position.");
- return 0;
- }
- if ((w = wwopen(WWO_PTY, nrow, ncol, row, col, nline)) == 0) {
- error("%s.", wwerror());
- return 0;
- }
- w->ww_id = id;
- window[id] = w;
- w->ww_hasframe = 1;
- w->ww_altpos.r = 1;
- w->ww_altpos.c = 0;
- if (label != 0 && setlabel(w, label) < 0)
- error("No memory for label.");
- wwcursor(w, 1);
- wwadd(w, framewin);
- selwin = w;
- reframe();
- wwupdate();
- wwflush();
- switch (wwfork(w)) {
- case -1:
- c_close(w);
- error("%s.", wwerror());
- return 0;
- case 0:
- execl(shell, shellname, 0);
- perror(shell);
- exit(1);
- }
- return w;
-}