+ if (eq("raw", *argv)) {
+ cfmakeraw(&t);
+ t.c_cflag &= ~(CSIZE|PARENB);
+ t.c_cflag |= CS8;
+ goto next;
+ }
+ if (eq("cooked", *argv) || eq("-raw", *argv) ||
+ eq("sane", *argv)) {
+ t.c_cflag = TTYDEF_CFLAG | (t.c_cflag & CLOCAL);
+ t.c_iflag = TTYDEF_IFLAG;
+ t.c_iflag |= ICRNL;
+ /* preserve user-preference flags in lflag */
+#define LKEEP (ECHOKE|ECHOE|ECHOK|ECHOPRT|ECHOCTL|ALTWERASE|TOSTOP|NOFLSH)
+ t.c_lflag = TTYDEF_LFLAG | (t.c_lflag & LKEEP);
+ t.c_oflag = TTYDEF_OFLAG;
+ t.c_oflag |= (OPOST|ONLCR); /* XXX */
+ goto next;
+ }