|
|
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, <buf); ! 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(<buf.t_suspc, CSUSP); ! 28: reset(<buf.t_dsuspc, CDSUSP); ! 29: reset(<buf.t_rprntc, CRPRNT); ! 30: reset(<buf.t_flushc, CFLUSH); ! 31: reset(<buf.t_lnextc, CLNEXT); ! 32: reset(<buf.t_werasc, CWERASE); ! 33: /* brkc is left alone */ ! 34: ioctl(2, TIOCSETN, &buf); ! 35: ioctl(2, TIOCSETC, &tbuf); ! 36: ioctl(2, TIOCSLTC, <buf); ! 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: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.