|
|
1.1 root 1: #include <sgtty.h>
2: #include <sys/filio.h>
3:
4: struct sgttyb save_sgb;
5: int pushed_ld = 0;
6:
7:
8: setecho(on)
9: int on;
10: {
11: struct sgttyb sgb;
12:
13: ioctl(0, TIOCGETP, &sgb);
14: if (on)
15: sgb.sg_flags |= ECHO;
16: else
17: sgb.sg_flags &= ~ECHO;
18: ioctl(0, TIOCSETP, &sgb);
19: }
20:
21: setraw(on)
22: int on;
23: {
24: struct sgttyb sgb;
25:
26: ioctl(0, TIOCGETP, &sgb);
27: if (on)
28: sgb.sg_flags |= RAW;
29: else
30: sgb.sg_flags &= ~RAW;
31: ioctl(0, TIOCSETP, &sgb);
32: }
33:
34: settty()
35: {
36: /* make sure interface is usable by humans */
37: struct tchars tcbuf;
38: extern int tty_ld;
39:
40: if(ioctl(0, TIOCGETC, &tcbuf) < 0) {
41: /* no tty ld (of any type) present; push one */
42: if(ioctl(0, FIOPUSHLD, &tty_ld) < 0)
43: printf("No tty processing supported; sorry\n");
44: pushed_ld++;
45: } else
46: ioctl(0, TIOCGETP, &save_sgb);
47: }
48:
49: restoretty()
50: {
51: if(pushed_ld)
52: ioctl(0, FIOPOPLD, (void *)0);
53: else
54: ioctl(0, TIOCSETP, &save_sgb);
55: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.