|
|
1.1 ! root 1: /* ! 2: # TTYCTL(3.icon) ! 3: # ! 4: # Control of terminal attributes ! 5: # ! 6: # Steven B. Wampler ! 7: # ! 8: # Last modified 8/19/84 ! 9: # ! 10: */ ! 11: ! 12: #include "../h/rt.h" ! 13: #ifdef VAX ! 14: #include <sgtty.h> ! 15: #define TIOCQSIZ (('t'<<8)|65) ! 16: ! 17: int oldttyflags = -1234; ! 18: ! 19: Xstty(nargs) /* set tty device flags */ ! 20: int nargs; ! 21: { ! 22: register int oldflags, i, n; ! 23: long l; ! 24: struct sgttyb oldmodes; ! 25: struct descrip arg; ! 26: ! 27: ioctl(2,TIOCGETP,&oldmodes); /* old modes */ ! 28: oldflags = oldmodes.sg_flags; ! 29: if (oldttyflags == -1234) /* save if 1st call */ ! 30: oldttyflags = oldflags; ! 31: ! 32: for (n = 1; n <= nargs; n++) { ! 33: arg = ARG(n); ! 34: if (cvint(&arg, &l) == NULL) ! 35: runerr(101, &arg); ! 36: i = (int)l; ! 37: if (l < 0) /* turn off flag */ ! 38: oldmodes.sg_flags &= ~-(int)l; ! 39: else /* turn on flag */ ! 40: oldmodes.sg_flags |= (int)l; ! 41: } ! 42: ! 43: ioctl(2,TIOCSETP,&oldmodes); /* new modes */ ! 44: mkint(oldflags, &ARG(0)); /* return old modes */ ! 45: } ! 46: ! 47: Procblock(stty,-1) ! 48: ! 49: Xrestty(nargs) /* reset tty to original state */ ! 50: int nargs; ! 51: { /* if original state unknown, makes a guess */ ! 52: register int oldflags; ! 53: struct sgttyb oldmodes; ! 54: ! 55: ioctl(2,TIOCGETP,&oldmodes); ! 56: oldflags = oldmodes.sg_flags; ! 57: oldmodes.sg_flags = (oldttyflags == -1234) ? 0330 : oldttyflags; ! 58: ioctl(2,TIOCSETP,&oldmodes); ! 59: mkint(oldflags, &ARG(0)); /* return old modes */ ! 60: } ! 61: ! 62: Procblock(restty,0) ! 63: ! 64: Xkeyin(nargs) ! 65: int nargs; ! 66: { ! 67: long count; ! 68: count = 0; ! 69: ioctl(0, FIONREAD, &count); ! 70: ! 71: if (count == 0L) ! 72: fail(); ! 73: ! 74: ARG(0) = nulldesc; ! 75: } ! 76: ! 77: Procblock(keyin,0) ! 78: #endif VAX
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.