⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 makenew.c

📁 <B>Digital的Unix操作系统VAX 4.2源码</B>
💻 C
字号:
#ifdef lintstatic char *sccsid = "@(#)makenew.c	4.1	(ULTRIX)	7/2/90";#endif lint# include	"curses.ext"# include	<signal.h>char	*calloc();char	*malloc();extern	char	*getenv();extern	WINDOW	*makenew();/* *	This routine sets up a window buffer and returns a pointer to it. */WINDOW *makenew(num_lines, num_cols, begy, begx)int	num_lines, num_cols, begy, begx;{	register int	i;	register WINDOW	*win;	register int	by, bx, nlines, ncols;	char *malloc(), *calloc();	by = begy;	bx = begx;	nlines = num_lines;	ncols = num_cols;	if (nlines <= 0 || ncols <= 0 || by > LINES || bx > COLS)		return NULL;# ifdef	DEBUG	if(outf) fprintf(outf, "MAKENEW(%d, %d, %d, %d)\n", nlines, ncols, by, bx);# endif	if ((win = (WINDOW *) calloc(1, sizeof (WINDOW))) == NULL)		return NULL;# ifdef DEBUG	if(outf) fprintf(outf, "MAKENEW: nlines = %d\n", nlines);# endif	if ((win->_y = (chtype **) calloc(nlines, sizeof (chtype *))) == NULL) {		free((char *)win);		return (WINDOW *) NULL;	}	if ((win->_firstch = (short *) calloc(nlines, sizeof (short))) == NULL) {		free((char *)win);		free((char *)win->_y);	}	if ((win->_lastch = (short *) calloc(nlines, sizeof (short))) == NULL) {		free((char *)win);		free((char *)win->_y);		free((char *)win->_firstch);	}# ifdef DEBUG	if(outf) fprintf(outf, "MAKENEW: ncols = %d\n", ncols);# endif	win->_cury = win->_curx = 0;	win->_clear = (nlines == LINES && ncols == COLS);	win->_maxy = nlines;	win->_maxx = ncols;	win->_begy = by;	win->_begx = bx;	win->_scroll = win->_leave = win->_use_idl = FALSE;	win->_tmarg = 0;	win->_bmarg = nlines - 1;	for (i = 0; i < nlines; i++)		win->_firstch[i] = win->_lastch[i] = _NOCHANGE;	if (bx + ncols == COLS) {		win->_flags |= _ENDLINE;		/* Full window: scrolling heuristics (linefeed) work */		if (nlines == LINES && ncols == COLS &&		    by == 0 && bx == 0 && scroll_forward)			win->_flags |= _FULLWIN;		/* Scrolling window: it might scroll on us by accident */		if (by + nlines == LINES && auto_right_margin)			win->_flags |= _SCROLLWIN;	}# ifdef DEBUG	if(outf) fprintf(outf, "MAKENEW: win->_clear = %d\n", win->_clear);	if(outf) fprintf(outf, "MAKENEW: win->_leave = %d\n", win->_leave);	if(outf) fprintf(outf, "MAKENEW: win->_scroll = %d\n", win->_scroll);	if(outf) fprintf(outf, "MAKENEW: win->_flags = %0.2o\n", win->_flags);	if(outf) fprintf(outf, "MAKENEW: win->_maxy = %d\n", win->_maxy);	if(outf) fprintf(outf, "MAKENEW: win->_maxx = %d\n", win->_maxx);	if(outf) fprintf(outf, "MAKENEW: win->_begy = %d\n", win->_begy);	if(outf) fprintf(outf, "MAKENEW: win->_begx = %d\n", win->_begx);# endif	return win;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -