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