Annotation of researchv10no/ncurses/screen/miniinit.c, revision 1.1

1.1     ! root        1: /*     @(#) miniinit.c: 1.1 10/15/83   (1.5    3/16/83)        */
        !             2: 
        !             3: # include      "curses.ext"
        !             4: # include      <signal.h>
        !             5: 
        !             6: char   *calloc();
        !             7: extern char    *getenv();
        !             8: 
        !             9: static WINDOW  *makenew();
        !            10: 
        !            11: struct screen *m_newterm();
        !            12: 
        !            13: /*
        !            14:  *     This routine initializes the current and standard screen.
        !            15:  *
        !            16:  * 3/5/81 (Berkeley) @(#)initscr.c     1.2
        !            17:  */
        !            18: 
        !            19: WINDOW *
        !            20: m_initscr() {
        !            21:        reg char        *sp;
        !            22:        
        !            23: # ifdef DEBUG
        !            24:        if (outf == NULL) {
        !            25:                outf = fopen("trace", "w");
        !            26:                if (outf == NULL) {
        !            27:                        perror("trace");
        !            28:                        exit(-1);
        !            29:                }
        !            30:        }
        !            31: #endif
        !            32: 
        !            33:        if (isatty(2)) {
        !            34:                if ((sp = getenv("TERM")) == NULL)
        !            35:                        sp = Def_term;
        !            36: # ifdef DEBUG
        !            37:                if(outf) fprintf(outf, "INITSCR: term = %s\n", sp);
        !            38: # endif
        !            39:        }
        !            40:        else {
        !            41:                sp = Def_term;
        !            42:        }
        !            43:        (void) m_newterm(sp, stdout, stdin);
        !            44:        return stdscr;
        !            45: }
        !            46: 
        !            47: struct screen *
        !            48: m_newterm(type, outfd, infd)
        !            49: char *type;
        !            50: FILE *outfd, *infd;
        !            51: {
        !            52:        int             m_tstp();
        !            53:        struct screen *scp;
        !            54:        struct screen *_new_tty();
        !            55:        extern int _endwin;
        !            56: 
        !            57: #ifdef DEBUG
        !            58:        if(outf) fprintf(outf, "NEWTERM() isatty(2) %d, getenv %s\n",
        !            59:                isatty(2), getenv("TERM"));
        !            60: # endif
        !            61:        SP = (struct screen *) calloc(1, sizeof (struct screen));
        !            62:        SP->term_file = outfd;
        !            63:        SP->input_file = infd;
        !            64:        savetty();
        !            65:        scp = _new_tty(type, outfd);
        !            66: # ifdef SIGTSTP
        !            67:        signal(SIGTSTP, m_tstp);
        !            68: # endif
        !            69: 
        !            70:        LINES = lines;
        !            71:        COLS =  columns;
        !            72: # ifdef DEBUG
        !            73:        if(outf) fprintf(outf, "LINES = %d, COLS = %d\n", LINES, COLS);
        !            74: # endif
        !            75:        curscr = makenew(LINES, COLS, 0, 0);
        !            76:        stdscr = makenew(LINES, COLS, 0, 0);
        !            77: # ifdef DEBUG
        !            78:        if(outf) fprintf(outf, "SP %x, stdscr %x, curscr %x\n", SP, stdscr, curscr);
        !            79: # endif
        !            80:        SP->std_scr = stdscr;
        !            81:        SP->cur_scr = curscr;
        !            82:        _endwin = FALSE;
        !            83:        return scp;
        !            84: }
        !            85: 
        !            86: /*
        !            87:  * Low level interface, for compatibility with old curses.
        !            88:  */
        !            89: setterm(type)
        !            90: char *type;
        !            91: {
        !            92:        setupterm(type, 1, 0);
        !            93: }
        !            94: 
        !            95: gettmode()
        !            96: {
        !            97:        /* No-op included only for upward compatibility. */
        !            98: }
        !            99: 
        !           100: /*
        !           101:  *     This routine sets up a _window buffer and returns a pointer to it.
        !           102:  */
        !           103: static WINDOW *
        !           104: makenew(num_lines, num_cols, begy, begx)
        !           105: int    num_lines, num_cols, begy, begx;
        !           106: {
        !           107:        reg WINDOW      *win;
        !           108:        char *calloc();
        !           109: 
        !           110: # ifdef        DEBUG
        !           111:        if(outf) fprintf(outf, "MAKENEW(%d, %d, %d, %d)\n", num_lines, num_cols, begy, begx);
        !           112: # endif
        !           113:        if ((win = (WINDOW *) calloc(1, sizeof (WINDOW))) == NULL)
        !           114:                return NULL;
        !           115: # ifdef DEBUG
        !           116:        if(outf) fprintf(outf, "MAKENEW: num_lines = %d\n", num_lines);
        !           117: # endif
        !           118:        win->_cury = win->_curx = 0;
        !           119:        win->_maxy = num_lines;
        !           120:        win->_maxx = num_cols;
        !           121:        win->_begy = begy;
        !           122:        win->_begx = begx;
        !           123:        win->_scroll = win->_leave = win->_use_idl = FALSE;
        !           124:        return win;
        !           125: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.