mirror of
https://github.com/python/cpython.git
synced 2025-08-03 16:39:00 +00:00

The terminal CR -> NL mapping setting should be inherited in cbreak mode as OSes do not specify altering it as part of their stty cbreak mode definition.
82 lines
2.6 KiB
ReStructuredText
82 lines
2.6 KiB
ReStructuredText
:mod:`tty` --- Terminal control functions
|
|
=========================================
|
|
|
|
.. module:: tty
|
|
:platform: Unix
|
|
:synopsis: Utility functions that perform common terminal control operations.
|
|
|
|
.. moduleauthor:: Steen Lumholt
|
|
.. sectionauthor:: Moshe Zadka <moshez@zadka.site.co.il>
|
|
|
|
**Source code:** :source:`Lib/tty.py`
|
|
|
|
--------------
|
|
|
|
The :mod:`tty` module defines functions for putting the tty into cbreak and raw
|
|
modes.
|
|
|
|
.. availability:: Unix.
|
|
|
|
Because it requires the :mod:`termios` module, it will work only on Unix.
|
|
|
|
The :mod:`tty` module defines the following functions:
|
|
|
|
|
|
.. function:: cfmakeraw(mode)
|
|
|
|
Convert the tty attribute list *mode*, which is a list like the one returned
|
|
by :func:`termios.tcgetattr`, to that of a tty in raw mode.
|
|
|
|
.. versionadded:: 3.12
|
|
|
|
|
|
.. function:: cfmakecbreak(mode)
|
|
|
|
Convert the tty attribute list *mode*, which is a list like the one returned
|
|
by :func:`termios.tcgetattr`, to that of a tty in cbreak mode.
|
|
|
|
This clears the ``ECHO`` and ``ICANON`` local mode flags in *mode* as well
|
|
as setting the minimum input to 1 byte with no delay.
|
|
|
|
.. versionadded:: 3.12
|
|
|
|
.. versionchanged:: 3.12.2
|
|
The ``ICRNL`` flag is no longer cleared. This matches Linux and macOS
|
|
``stty cbreak`` behavior and what :func:`setcbreak` historically did.
|
|
|
|
|
|
.. function:: setraw(fd, when=termios.TCSAFLUSH)
|
|
|
|
Change the mode of the file descriptor *fd* to raw. If *when* is omitted, it
|
|
defaults to :const:`termios.TCSAFLUSH`, and is passed to
|
|
:func:`termios.tcsetattr`. The return value of :func:`termios.tcgetattr`
|
|
is saved before setting *fd* to raw mode; this value is returned.
|
|
|
|
.. versionchanged:: 3.12
|
|
The return value is now the original tty attributes, instead of None.
|
|
|
|
|
|
.. function:: setcbreak(fd, when=termios.TCSAFLUSH)
|
|
|
|
Change the mode of file descriptor *fd* to cbreak. If *when* is omitted, it
|
|
defaults to :const:`termios.TCSAFLUSH`, and is passed to
|
|
:func:`termios.tcsetattr`. The return value of :func:`termios.tcgetattr`
|
|
is saved before setting *fd* to cbreak mode; this value is returned.
|
|
|
|
This clears the ``ECHO`` and ``ICANON`` local mode flags as well as setting
|
|
the minimum input to 1 byte with no delay.
|
|
|
|
.. versionchanged:: 3.12
|
|
The return value is now the original tty attributes, instead of None.
|
|
|
|
.. versionchanged:: 3.12.2
|
|
The ``ICRNL`` flag is no longer cleared. This restores the behavior
|
|
of Python 3.11 and earlier as well as matching what Linux, macOS, & BSDs
|
|
describe in their ``stty(1)`` man pages regarding cbreak mode.
|
|
|
|
|
|
.. seealso::
|
|
|
|
Module :mod:`termios`
|
|
Low-level terminal control interface.
|
|
|