Bug report
Bug description:
I encountered the following unexpected behavior when working with the new REPL on Windows 10's cmd just now:
Actual Behavior
>>> for i in range(0, 14, 2): ... print(i, end=" ") ... >>> 4 6 8 10 12
- When I use print and pass an argument to the
end-parameter, the resulting line is missing 4 characters. - The four chars of the REPL prompt
>>>appear to write over the line, as the cursor blinks on the first visible position (indicator sits under the number 4) - Typing overwrites the shown chars.
Expected Behavior
>>> for i in range(0, 14, 2): ... print(i, end=" ") ... 0 2 4 6 8 10 12 >>> _
- REPL on Python 3.12 works as expected.
- Results are printed in one line, prompt appears at the end, cursor follows at end of line.
Note:
This works as expected:
>>> for i in range(0, 14, 2): ... print(i) ... 0 2 4 6 8 10 12
CPython versions tested on:
3.13
Operating systems tested on:
Windows
Linked PRs
- gh-128067: Add newline to new REPL output when needed to avoid chopping characters #131011
- gh-128067: Fix pyrepl overriding printed output without newlines #138732
- [3.14] gh-128067: Fix pyrepl overriding printed output without newlines (GH-138732) #143350
- [3.13] gh-128067: Fix pyrepl overriding printed output without newlines (GH-138732) #143351
- gh-128067: In test_pyrepl, discover escape sequences from terminfo instead of using hard-coded values #143356