Annotation of 42BSD/ucb/reset.c, revision 1.1.1.1

1.1       root        1: #ifndef lint
                      2: static char *sccsid = "@(#)reset.c     4.4 (Berkeley) 7/1/83";
                      3: #endif
                      4: /*
                      5:  * reset - restore tty to sensible state after crapping out in raw mode.
                      6:  */
                      7: #include <sgtty.h>
                      8: 
                      9: main()
                     10: {
                     11:        struct sgttyb buf;
                     12:        struct tchars tbuf;
                     13:        struct ltchars ltbuf;
                     14: 
                     15:        ioctl(2, TIOCGETP, &buf);
                     16:        ioctl(2, TIOCGETC, &tbuf);
                     17:        ioctl(2, TIOCGLTC, &ltbuf);
                     18:        buf.sg_flags &= ~(RAW|CBREAK|VTDELAY|ALLDELAY);
                     19:        buf.sg_flags |= XTABS|ECHO|CRMOD|ANYP;
                     20:        reset(&buf.sg_erase, CERASE);
                     21:        reset(&buf.sg_kill, CKILL);
                     22:        reset(&tbuf.t_intrc, CINTR);
                     23:        reset(&tbuf.t_quitc, CQUIT);
                     24:        reset(&tbuf.t_startc, CSTART);
                     25:        reset(&tbuf.t_stopc, CSTOP);
                     26:        reset(&tbuf.t_eofc, CEOF);
                     27:        reset(&ltbuf.t_suspc, CSUSP);
                     28:        reset(&ltbuf.t_dsuspc, CDSUSP);
                     29:        reset(&ltbuf.t_rprntc, CRPRNT);
                     30:        reset(&ltbuf.t_flushc, CFLUSH);
                     31:        reset(&ltbuf.t_lnextc, CLNEXT);
                     32:        reset(&ltbuf.t_werasc, CWERASE);
                     33:        /* brkc is left alone */
                     34:        ioctl(2, TIOCSETN, &buf);
                     35:        ioctl(2, TIOCSETC, &tbuf);
                     36:        ioctl(2, TIOCSLTC, &ltbuf);
                     37:        execlp("tset", "tset", "-Q", "-I", 0);  /* fix term dependent stuff */
                     38:        exit(1);
                     39: }
                     40: 
                     41: reset(cp, def)
                     42:        char *cp;
                     43:        int def;
                     44: {
                     45: 
                     46:        if (*cp == 0 || (*cp&0377)==0377)
                     47:                *cp = def;
                     48: }

unix.superglobalmegacorp.com

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