Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

read1 in cbreak mode returns 0x0D (instead of 0x0A) when <enter> is entered. #114328

Closed
Assignees
gpshead
Labels
3.12only security fixestype-bugAn unexpected behavior, bug, or error
@johannesnoordanus

Description

@johannesnoordanus

Bug report

Bug description:

Aread1 of 'stdin' in cbreak mode returns 0x0D (instead of 0x0A) when <enter> is entered.
That is for Python version 3.12.1, version 3.11.6 returns 0x0A.

The following code demonstrates this. When run enter <enter>.

"""cbreak <enter> test"""importsysimportttyimportselectimporttermiosfromtimeimportsleep# save stdin attributesprevStdinAttributes=termios.tcgetattr(sys.stdin)# set cbreak mode:# "Enter cbreak mode. In cbreak mode (sometimes called “rare” mode) normal tty line buffering#  is turned off and characters are available to be read one by one. However, unlike raw mode,#  special characters (interrupt, quit, suspend, and flow control) retain their effects on the#  tty driver and calling program. Calling first raw() then cbreak() leaves the terminal in cbreak mode."tty.setcbreak(sys.stdin,when=termios.TCSANOW)c=b''# wait for a bytewhileTrue:ifselect.select([sys.stdin], [], [],0)== ([sys.stdin], [], []):c=sys.stdin.buffer.read1(1)breaksleep(.1)# restore stdin attributestermios.tcsetattr(sys.stdin,termios.TCSADRAIN,prevStdinAttributes)# print result byte in hexprint(f"bytes: '\\x{c.hex().upper()}'")

CPython versions tested on:

3.11, 3.12

Operating systems tested on:

Linux, macOS

Linked PRs

Metadata

Metadata

Assignees

Labels

3.12only security fixestype-bugAn unexpected behavior, bug, or error

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions


    [8]ページ先頭

    ©2009-2025 Movatter.jp