|
|
1.1 root 1: /*
2: * Copyright (c) 1981 Regents of the University of California.
3: * All rights reserved.
4: *
5: * Redistribution and use in source and binary forms are permitted
6: * provided that the above copyright notice and this paragraph are
7: * duplicated in all such forms and that any documentation,
8: * advertising materials, and other materials related to such
9: * distribution and use acknowledge that the software was developed
10: * by the University of California, Berkeley. The name of the
11: * University may not be used to endorse or promote products derived
12: * from this software without specific prior written permission.
13: * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
14: * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
15: * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
16: */
17:
18: #ifndef lint
19: static char sccsid[] = "@(#)delwin.c 5.3 (Berkeley) 6/30/88";
20: #endif /* not lint */
21:
22: # include "curses.ext"
23:
24: /*
25: * This routine deletes a window and releases it back to the system.
26: *
27: */
28: delwin(win)
29: reg WINDOW *win; {
30:
31: reg int i;
32: reg WINDOW *wp, *np;
33:
34: if (win->_orig == NULL) {
35: /*
36: * If we are the original window, delete the space for
37: * all the subwindows, and the array of space as well.
38: */
39: for (i = 0; i < win->_maxy && win->_y[i]; i++)
40: free(win->_y[i]);
41: free(win->_firstch);
42: free(win->_lastch);
43: wp = win->_nextp;
44: while (wp != win) {
45: np = wp->_nextp;
46: delwin(wp);
47: wp = np;
48: }
49: }
50: else {
51: /*
52: * If we are a subwindow, take ourselves out of the
53: * list. NOTE: if we are a subwindow, the minimum list
54: * is orig followed by this subwindow, so there are
55: * always at least two windows in the list.
56: */
57: for (wp = win->_nextp; wp->_nextp != win; wp = wp->_nextp)
58: continue;
59: wp->_nextp = win->_nextp;
60: }
61: free(win->_y);
62: free(win);
63: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.