A multi-byte character in new PyREPL requires two backspaces to delete
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 77.2k
- Forks
- 35.9k
- PR merge metrics
- PR metrics pending
Description
Bug report
Bug description:
Bug report
To reproduce
- Open the new REPL
- Paste:
é - Backspace to remove the pasted character
The paste-able string above is letter 'e' followed by \u0301. To create it use:
print('e\u0301')
The \u0301 is a combining mark with zero-width display length
Current behavior
Two backspaces are required to remove the displayed character
Expected behavior
One backspace is required to remove the displayed character
This is the behavior in the old REPL
CPython versions tested on:
3.14.0, 3.15.0a2
Operating systems tested on:
Linux
Linked PRs
- gh-145332
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the issue in the new PyREPL with the combining-character string e\u0301, then compare its deletion behavior with the old REPL. Done means one backspace removes the displayed character, with the relevant behavior covered by a test; check linked PR gh-145332 first because work may already be underway.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- cli
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Clearly specified
- Newbie friendliness
- 32/100