| """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) |