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