xref: /csrg-svn/usr.bin/window/wwclose.c (revision 13982)
1*13982Sedward #ifndef lint
2*13982Sedward static	char *sccsid = "@(#)wwclose.c	1.1 83/07/18";
3*13982Sedward #endif
4*13982Sedward 
5*13982Sedward #include "ww.h"
6*13982Sedward #include <signal.h>
7*13982Sedward 
8*13982Sedward wwclose(w)
9*13982Sedward register struct ww *w;
10*13982Sedward {
11*13982Sedward 	register struct ww **p;
12*13982Sedward 
13*13982Sedward 	for (p = &wwhead; *p && *p != w; p = &(*p)->ww_next)
14*13982Sedward 		;
15*13982Sedward 	if (*p == 0)
16*13982Sedward 		return -1;
17*13982Sedward 	*p = w->ww_next;
18*13982Sedward 	if (curwin == w)
19*13982Sedward 		curwin = wwhead;
20*13982Sedward 	if (w->ww_state == WW_HASPROC)
21*13982Sedward 		kill(w->ww_pid, SIGHUP);
22*13982Sedward 	close(w->ww_tty);
23*13982Sedward 	close(w->ww_pty);
24*13982Sedward 	Wclose(w->ww_win);
25*13982Sedward 	cfree(w);
26*13982Sedward 	return 0;
27*13982Sedward }
28