Annotation of researchv10no/ncurses/screen/newterm.c, revision 1.1.1.1

1.1       root        1: # include      "curses.ext"
                      2: # include      <signal.h>
                      3: /*     @(#) newterm.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: struct screen *
                     12: newterm(type, outfd, infd)
                     13: char *type;
                     14: FILE *outfd, *infd;
                     15: {
                     16:        int             _tstp();
                     17:        struct screen *scp;
                     18:        struct screen *_new_tty();
                     19:        extern int _endwin;
                     20: 
                     21: #ifdef DEBUG
                     22:        if(outf) fprintf(outf, "NEWTERM() isatty(2) %d, getenv %s\n",
                     23:                isatty(2), getenv("TERM"));
                     24: # endif
                     25:        SP = (struct screen *) calloc(1, sizeof (struct screen));
                     26:        SP->term_file = outfd;
                     27:        SP->input_file = infd;
                     28:        /*
                     29:         * The default is echo, for upward compatibility, but we do
                     30:         * all echoing in curses to avoid problems with the tty driver
                     31:         * echoing things during critical sections.
                     32:         */
                     33:        SP->fl_echoit = 1;
                     34:        savetty();
                     35:        scp = _new_tty(type, outfd);
                     36:        if (scp == NULL)
                     37:                return NULL;
                     38: #ifdef USG
                     39:        (cur_term->Nttyb).c_lflag &= ~ECHO;
                     40: #else
                     41:        (cur_term->Nttyb).sg_flags &= ~ECHO;
                     42: #endif
                     43:        reset_prog_mode();
                     44: # ifdef SIGTSTP
                     45:        signal(SIGTSTP, _tstp);
                     46: # endif
                     47:        if (curscr != NULL) {
                     48: # ifdef DEBUG
                     49:                if(outf) fprintf(outf, "INITSCR: non null curscr = 0%o\n", curscr);
                     50: # endif
                     51:        }
                     52: # ifdef DEBUG
                     53:        if(outf) fprintf(outf, "LINES = %d, COLS = %d\n", LINES, COLS);
                     54: # endif
                     55:        LINES = lines;
                     56:        COLS =  columns;
                     57:        curscr = makenew(LINES, COLS, 0, 0);
                     58:        stdscr = newwin(LINES, COLS, 0, 0);
                     59: # ifdef DEBUG
                     60:        if(outf) fprintf(outf, "SP %x, stdscr %x, curscr %x\n", SP, stdscr, curscr);
                     61: # endif
                     62:        SP->std_scr = stdscr;
                     63:        SP->cur_scr = curscr;
                     64:        /* Maybe should use makewin and glue _y's to DesiredScreen. */
                     65:        _endwin = FALSE;
                     66:        return scp;
                     67: }

unix.superglobalmegacorp.com

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