| """Terminal utilities.""" | |
| # Author: Steen Lumholt. | |
| from termios import * | |
| __all__ = ["setraw", "setcbreak"] | |
| # Indexes for termios list. | |
| IFLAG = 0 | |
| OFLAG = 1 | |
| CFLAG = 2 | |
| LFLAG = 3 | |
| ISPEED = 4 | |
| OSPEED = 5 | |
| CC = 6 | |
| def setraw(fd, when=TCSAFLUSH): | |
| """Put terminal into a raw mode.""" | |
| mode = tcgetattr(fd) | |
| mode[IFLAG] = mode[IFLAG] & ~(BRKINT | ICRNL | INPCK | ISTRIP | IXON) | |
| mode[OFLAG] = mode[OFLAG] & ~(OPOST) | |
| mode[CFLAG] = mode[CFLAG] & ~(CSIZE | PARENB) | |
| mode[CFLAG] = mode[CFLAG] | CS8 | |
| mode[LFLAG] = mode[LFLAG] & ~(ECHO | ICANON | IEXTEN | ISIG) | |
| mode[CC][VMIN] = 1 | |
| mode[CC][VTIME] = 0 | |
| tcsetattr(fd, when, mode) | |
| def setcbreak(fd, when=TCSAFLUSH): | |
| """Put terminal into a cbreak mode.""" | |
| mode = tcgetattr(fd) | |
| mode[LFLAG] = mode[LFLAG] & ~(ECHO | ICANON) | |
| mode[CC][VMIN] = 1 | |
| mode[CC][VTIME] = 0 | |
| tcsetattr(fd, when, mode) |