1: # include   "curses.ext"
   2: 
   3: /*
   4:  *	This routine deletes a window and releases it back to the system.
   5:  *
   6:  * 4/6/83 (Berkeley) @(#)delwin.c	1.5
   7:  */
   8: delwin(win)
   9: reg WINDOW  *win; {
  10: 
  11:     reg int     i;
  12:     reg WINDOW  *wp, *np;
  13: 
  14:     if (win->_orig == NULL) {
  15:         /*
  16: 		 * If we are the original window, delete the space for
  17: 		 * all the subwindows, and the array of space as well.
  18: 		 */
  19:         for (i = 0; i < win->_maxy && win->_y[i]; i++)
  20:             cfree(win->_y[i]);
  21:         wp = win->_nextp;
  22:         while (wp != win) {
  23:             np = wp->_nextp;
  24:             delwin(wp);
  25:             wp = np;
  26:         }
  27:     }
  28:     else {
  29:         /*
  30: 		 * If we are a subwindow, take ourself out of the
  31: 		 * list.  NOTE: if we are a subwindow, the minimum list
  32: 		 * is orig followed by this subwindow, so there are
  33: 		 * always at least two windows in the list.
  34: 		 */
  35:         for (wp = win->_nextp; wp->_nextp != win; wp = wp->_nextp)
  36:             continue;
  37:         wp->_nextp = win->_nextp;
  38:     }
  39:     cfree(win->_y);
  40:     cfree(win->_firstch);
  41:     cfree(win->_lastch);
  42:     cfree(win);
  43: }

Defined functions

delwin defined in line 8; used 3 times
Last modified: 1983-05-18
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 544
Valid CSS Valid XHTML 1.0 Strict