📄 makenew.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 + -