Line | |
---|
1 | """Terminal utilities.""" |
---|
2 | |
---|
3 | # Author: Steen Lumholt. |
---|
4 | |
---|
5 | from termios import * |
---|
6 | |
---|
7 | __all__ = ["setraw", "setcbreak"] |
---|
8 | |
---|
9 | # Indexes for termios list. |
---|
10 | IFLAG = 0 |
---|
11 | OFLAG = 1 |
---|
12 | CFLAG = 2 |
---|
13 | LFLAG = 3 |
---|
14 | ISPEED = 4 |
---|
15 | OSPEED = 5 |
---|
16 | CC = 6 |
---|
17 | |
---|
18 | def setraw(fd, when=TCSAFLUSH): |
---|
19 | """Put terminal into a raw mode.""" |
---|
20 | mode = tcgetattr(fd) |
---|
21 | mode[IFLAG] = mode[IFLAG] & ~(BRKINT | ICRNL | INPCK | ISTRIP | IXON) |
---|
22 | mode[OFLAG] = mode[OFLAG] & ~(OPOST) |
---|
23 | mode[CFLAG] = mode[CFLAG] & ~(CSIZE | PARENB) |
---|
24 | mode[CFLAG] = mode[CFLAG] | CS8 |
---|
25 | mode[LFLAG] = mode[LFLAG] & ~(ECHO | ICANON | IEXTEN | ISIG) |
---|
26 | mode[CC][VMIN] = 1 |
---|
27 | mode[CC][VTIME] = 0 |
---|
28 | tcsetattr(fd, when, mode) |
---|
29 | |
---|
30 | def setcbreak(fd, when=TCSAFLUSH): |
---|
31 | """Put terminal into a cbreak mode.""" |
---|
32 | mode = tcgetattr(fd) |
---|
33 | mode[LFLAG] = mode[LFLAG] & ~(ECHO | ICANON) |
---|
34 | mode[CC][VMIN] = 1 |
---|
35 | mode[CC][VTIME] = 0 |
---|
36 | tcsetattr(fd, when, mode) |
---|
Note: See
TracBrowser
for help on using the repository browser.