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