BSD 3 development
authorKurt A. Shoens <kurt@ucbvax.Berkeley.EDU>
Sun, 21 Oct 1979 16:06:30 +0000 (08:06 -0800)
committerKurt A. Shoens <kurt@ucbvax.Berkeley.EDU>
Sun, 21 Oct 1979 16:06:30 +0000 (08:06 -0800)
Work on file usr/src/cmd/reset.c

Synthesized-from: 3bsd

usr/src/cmd/reset.c [new file with mode: 0644]

diff --git a/usr/src/cmd/reset.c b/usr/src/cmd/reset.c
new file mode 100644 (file)
index 0000000..1774047
--- /dev/null
@@ -0,0 +1,32 @@
+/*
+ * reset - set the teletype mode bits to be sensible
+ *
+ * Kurt Shoens
+ *
+ * Very useful after crapping out in raw.
+ * Modified by Mark Horton to know about tchars
+ * and to not mess with peoples chars unless they are null.
+ */
+#include <sgtty.h>
+#define chk(val, dft) (val==0 ? dft : val)
+
+main()
+{
+       struct sgttyb buf;
+       struct tchars tbuf;
+
+       gtty(2, &buf);
+       ioctl(2, TIOCGETC, &tbuf);
+       buf.sg_flags &= ~(RAW|CBREAK|VTDELAY|ALLDELAY);
+       buf.sg_flags |= XTABS|ECHO|CRMOD|ANYP;
+       buf.sg_erase = chk(buf.sg_erase, '\08');        /* ^H */
+       buf.sg_kill = chk(buf.sg_kill, '\30');          /* ^X */
+       tbuf.t_intrc = chk(tbuf.t_intrc, '\177');       /* ^? */
+       tbuf.t_quitc = chk(tbuf.t_quitc, '\34');        /* ^\ */
+       tbuf.t_startc = chk(tbuf.t_startc, '\22');      /* ^Q */
+       tbuf.t_stopc = chk(tbuf.t_stopc, '\24');        /* ^S */
+       tbuf.t_eofc = chk(tbuf.t_eofc, '\4');           /* ^D */
+       /* brkc is left alone */
+       ioctl(2, TIOCSETN, &buf);
+       ioctl(2, TIOCSETC, &tbuf);
+}