equal
deleted
inserted
replaced
|
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) |