xref: /original-bsd/usr.bin/tset/reset.c (revision 5d111168)
1 static char *sccsid = "@(#)reset.c	4.1 (Berkeley) 10/01/80";
2 /*
3  * reset - set the teletype mode bits to be sensible
4  *
5  * Kurt Shoens
6  *
7  * Very useful after crapping out in raw.
8  * Modified by Mark Horton to know about tchars
9  * and to not mess with peoples chars unless they are null.
10  */
11 #include <sgtty.h>
12 #define chk(val, dft) (val==0 ? dft : val)
13 
14 main()
15 {
16 	struct sgttyb buf;
17 	struct tchars tbuf;
18 
19 	gtty(2, &buf);
20 	ioctl(2, TIOCGETC, &tbuf);
21 	buf.sg_flags &= ~(RAW|CBREAK|VTDELAY|ALLDELAY);
22 	buf.sg_flags |= XTABS|ECHO|CRMOD|ANYP;
23 	buf.sg_erase = chk(buf.sg_erase, '\08');	/* ^H */
24 	buf.sg_kill = chk(buf.sg_kill, '\30');		/* ^X */
25 	tbuf.t_intrc = chk(tbuf.t_intrc, '\177');	/* ^? */
26 	tbuf.t_quitc = chk(tbuf.t_quitc, '\34');	/* ^\ */
27 	tbuf.t_startc = chk(tbuf.t_startc, '\22');	/* ^Q */
28 	tbuf.t_stopc = chk(tbuf.t_stopc, '\24');	/* ^S */
29 	tbuf.t_eofc = chk(tbuf.t_eofc, '\4');		/* ^D */
30 	/* brkc is left alone */
31 	ioctl(2, TIOCSETN, &buf);
32 	ioctl(2, TIOCSETC, &tbuf);
33 }
34