Skip to content

Commit

Permalink
Clarify the specific behavior in the docs.
Browse files Browse the repository at this point in the history
  • Loading branch information
gpshead committed Jan 20, 2024
1 parent 3c28745 commit d1b0823
Showing 1 changed file with 11 additions and 4 deletions.
15 changes: 11 additions & 4 deletions Doc/library/tty.rst
Original file line number Diff line number Diff line change
Expand Up @@ -35,10 +35,14 @@ The :mod:`tty` module defines the following functions:
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.
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)
Expand All @@ -59,13 +63,16 @@ The :mod:`tty` module defines the following functions:
: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 matches both the behavior
of 3.11 and earlier as well as what Linux, macOS, and BSDs describe in
their ``stty(1)`` man pages regarding cbreak mode.
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::
Expand Down

0 comments on commit d1b0823

Please sign in to comment.