xref: /csrg-svn/usr.bin/window/wwclose.c (revision 42954)
118735Sedward /*
233514Sbostic  * Copyright (c) 1983 Regents of the University of California.
333514Sbostic  * All rights reserved.
433514Sbostic  *
5*42954Sbostic  * This code is derived from software contributed to Berkeley by
6*42954Sbostic  * Edward Wang at The University of California, Berkeley.
7*42954Sbostic  *
842835Sbostic  * %sccs.include.redist.c%
918735Sedward  */
1018735Sedward 
1133514Sbostic #ifndef lint
12*42954Sbostic static char sccsid[] = "@(#)wwclose.c	3.18 (Berkeley) 06/06/90";
1333514Sbostic #endif /* not lint */
1433514Sbostic 
1513982Sedward #include "ww.h"
1613982Sedward 
1713982Sedward wwclose(w)
1813982Sedward register struct ww *w;
1913982Sedward {
2014415Sedward 	wwindex[w->ww_index] = 0;
2116313Sedward 	if (w->ww_pty >= 0)
2216313Sedward 		(void) close(w->ww_pty);
2316313Sedward 	if (w->ww_socket >= 0)
2416313Sedward 		(void) close(w->ww_socket);
2514987Sedward 	wwfree((char **)w->ww_win, w->ww_w.t);
2618203Sedward 	wwfree((char **)w->ww_buf, w->ww_b.t);
2714830Sedward 	if (w->ww_fmap != 0)
2814987Sedward 		wwfree((char **)w->ww_fmap, w->ww_w.t);
2914987Sedward 	free((char *)(w->ww_nvis + w->ww_w.t));
3016108Sedward 	if (w->ww_ob != 0)
3116108Sedward 		free(w->ww_ob);
3214415Sedward 	free((char *)w);
3313982Sedward }
34