re-insert decctlq
authorBill Joy <root@ucbvax.Berkeley.EDU>
Tue, 19 May 1981 02:57:28 +0000 (18:57 -0800)
committerBill Joy <root@ucbvax.Berkeley.EDU>
Tue, 19 May 1981 02:57:28 +0000 (18:57 -0800)
SCCS-vsn: bin/stty/stty.c 4.4

usr/src/bin/stty/stty.c

index 7e5ea5f..5360b85 100644 (file)
@@ -1,4 +1,4 @@
-static char *sccsid ="@(#)stty.c       4.3 (Berkeley) %G%";
+static char *sccsid ="@(#)stty.c       4.4 (Berkeley) %G%";
 /*
  * set teletype modes
  */
 /*
  * set teletype modes
  */
@@ -113,6 +113,8 @@ struct
        "-ctlecho",     0, 0, 0, LCTLECH,
        "pendin",       0, 0, LPENDIN, 0,
        "-pendin",      0, 0, 0, LPENDIN,
        "-ctlecho",     0, 0, 0, LCTLECH,
        "pendin",       0, 0, LPENDIN, 0,
        "-pendin",      0, 0, 0, LPENDIN,
+       "decctlq",      0, 0, LDECCTQ, 0,
+       "-decctlq",     0, 0, 0, LDECCTQ,
        0,
 };
 
        0,
 };
 
@@ -219,6 +221,19 @@ char       **iargv;
                                perror("ioctl");
                        continue;
                }
                                perror("ioctl");
                        continue;
                }
+               if (eq("dec")){
+                       mode.sg_erase = 0177;
+                       mode.sg_kill = CTRL(u);
+                       tc.t_intrc = CTRL(c);
+                       ldisc = NTTYDISC;
+                       lmode &= ~LPRTERA;
+                       lmode |= LCRTBS|LCTLECH|LDECCTQ;
+                       if (mode.sg_ospeed >= B1200)
+                               lmode |= LCRTERA|LCRTKIL;
+                       if (ioctl(1, TIOCSETD, &ldisc)<0)
+                               perror("ioctl");
+                       continue;
+               }
                for (sp = special; sp->name; sp++)
                        if (eq(sp->name)) {
                                if (--argc == 0)
                for (sp = special; sp->name; sp++)
                        if (eq(sp->name)) {
                                if (--argc == 0)
@@ -226,7 +241,7 @@ char        **iargv;
                                if (**++argv == 'u')
                                        *sp->cp = 0377;
                                else if (**argv == '^')
                                if (**++argv == 'u')
                                        *sp->cp = 0377;
                                else if (**argv == '^')
-                                       *sp->cp = ((*argv)[1] == '?') ?
+                                       *sp->cp = (*(argv[1]) == '?') ?
                                            0177 : (*argv)[1] & 037;
                                else
                                        *sp->cp = **argv;
                                            0177 : (*argv)[1] & 037;
                                else
                                        *sp->cp = **argv;