|
|
1.1 root 1: # include "curses.ext"
2: # include <signal.h>
3: /* @(#) newpad.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: * Like newwin, but makes a pad instead of a window. A pad is not
13: * associated with part of the screen, so it can be bigger.
14: */
15: WINDOW *
16: newpad(nlines, ncols)
17: register int nlines;
18: {
19: register WINDOW *win;
20: register chtype *sp;
21: register int i;
22: char *calloc();
23:
24: if ((win = makenew(nlines, ncols, 0, 0)) == NULL)
25: return NULL;
26: win->_flags |= _ISPAD;
27: for (i = 0; i < nlines; i++)
28: if ((win->_y[i] = (chtype *) calloc(ncols, sizeof (chtype))) == NULL) {
29: register int j;
30:
31: for (j = 0; j < i; j++)
32: cfree((char *)win->_y[j]);
33: cfree((char *)win->_firstch);
34: cfree((char *)win->_lastch);
35: cfree((char *)win->_y);
36: cfree((char *)win);
37: return NULL;
38: }
39: else
40: for (sp = win->_y[i]; sp < win->_y[i] + ncols; )
41: *sp++ = ' ';
42: return win;
43: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.