|
|
1.1 ! root 1: # include "curses.ext" ! 2: # include <signal.h> ! 3: /* @(#) newwin.c: 1.1 10/15/83 (1.17 3/16/83) */ ! 4: ! 5: char *calloc(); ! 6: char *malloc(); ! 7: extern char *getenv(); ! 8: ! 9: extern WINDOW *makenew(); ! 10: ! 11: /* ! 12: * allocate space for and set up defaults for a new _window ! 13: * ! 14: * 1/26/81 (Berkeley). This used to be newwin.c ! 15: */ ! 16: ! 17: WINDOW * ! 18: newwin(nlines, ncols, by, bx) ! 19: register int nlines, ncols, by, bx; ! 20: { ! 21: register WINDOW *win; ! 22: register chtype *sp; ! 23: register int i; ! 24: char *calloc(); ! 25: ! 26: if (by + nlines > LINES) ! 27: nlines = LINES - by; ! 28: if (bx + ncols > COLS) ! 29: ncols = COLS - bx; ! 30: ! 31: if (nlines == 0) ! 32: nlines = LINES - by; ! 33: if (ncols == 0) ! 34: ncols = COLS - bx; ! 35: ! 36: if ((win = makenew(nlines, ncols, by, bx)) == NULL) ! 37: return NULL; ! 38: for (i = 0; i < nlines; i++) ! 39: if ((win->_y[i] = (chtype *) calloc(ncols, sizeof (chtype))) == NULL) { ! 40: register int j; ! 41: ! 42: for (j = 0; j < i; j++) ! 43: cfree((char *)win->_y[j]); ! 44: cfree((char *)win->_firstch); ! 45: cfree((char *)win->_lastch); ! 46: cfree((char *)win->_y); ! 47: cfree((char *)win); ! 48: return NULL; ! 49: } ! 50: else ! 51: for (sp = win->_y[i]; sp < win->_y[i] + ncols; ) ! 52: *sp++ = ' '; ! 53: return win; ! 54: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.