xref: /csrg-svn/usr.bin/window/wwclose.c (revision 14864)
113982Sedward #ifndef lint
2*14864Sedward static	char *sccsid = "@(#)wwclose.c	3.4 83/08/26";
313982Sedward #endif
413982Sedward 
513982Sedward #include "ww.h"
613982Sedward #include <signal.h>
713982Sedward 
813982Sedward wwclose(w)
913982Sedward register struct ww *w;
1013982Sedward {
1114415Sedward 	wwindex[w->ww_index] = 0;
1214415Sedward 	if (w->ww_state == WWS_HASPROC)
1314415Sedward 		(void) kill(w->ww_pid, SIGHUP);
14*14864Sedward 	if (w->ww_haspty) {
15*14864Sedward 		(void) close(w->ww_tty);
16*14864Sedward 		(void) close(w->ww_pty);
17*14864Sedward 	}
1814754Sedward 	wwfree((char **)w->ww_win);
1914754Sedward 	wwfree((char **)w->ww_cov);
2014754Sedward 	wwfree((char **)w->ww_buf);
2114830Sedward 	if (w->ww_fmap != 0)
2214830Sedward 		wwfree((char **)w->ww_fmap);
23*14864Sedward 	free((char *)w->ww_nvis);
2414415Sedward 	free((char *)w);
2513982Sedward }
26