| """Terminal utilities.""" |
| |
| # Author: Steen Lumholt. |
| |
| from TERMIOSimport* |
| from termiosimport* |
| |
| # 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) |
| |