xref: /csrg-svn/usr.bin/window/wwclose.c (revision 14987)
113982Sedward #ifndef lint
2*14987Sedward static	char *sccsid = "@(#)wwclose.c	3.5 83/09/15";
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);
1414864Sedward 	if (w->ww_haspty) {
1514864Sedward 		(void) close(w->ww_tty);
1614864Sedward 		(void) close(w->ww_pty);
1714864Sedward 	}
18*14987Sedward 	wwfree((char **)w->ww_win, w->ww_w.t);
19*14987Sedward 	wwfree((char **)w->ww_cov, w->ww_w.t);
20*14987Sedward 	wwfree((char **)w->ww_buf, w->ww_w.t);
2114830Sedward 	if (w->ww_fmap != 0)
22*14987Sedward 		wwfree((char **)w->ww_fmap, w->ww_w.t);
23*14987Sedward 	free((char *)(w->ww_nvis + w->ww_w.t));
2414415Sedward 	free((char *)w);
2513982Sedward }
26