mirror of
https://github.com/python/cpython.git
synced 2025-08-29 05:05:03 +00:00
gh-130804: Fix support of typing unicode chars in pyrepl (#130805)
This commit is contained in:
parent
6ab5c4aa05
commit
7c98b0674d
3 changed files with 17 additions and 3 deletions
|
@ -69,13 +69,19 @@ class BaseEventQueue:
|
|||
trace('added event {event}', event=event)
|
||||
self.events.append(event)
|
||||
|
||||
def push(self, char: int | bytes) -> None:
|
||||
def push(self, char: int | bytes | str) -> None:
|
||||
"""
|
||||
Processes a character by updating the buffer and handling special key mappings.
|
||||
"""
|
||||
ord_char = char if isinstance(char, int) else ord(char)
|
||||
char = bytes(bytearray((ord_char,)))
|
||||
self.buf.append(ord_char)
|
||||
if ord_char > 255:
|
||||
assert isinstance(char, str)
|
||||
char = bytes(char.encode(self.encoding, "replace"))
|
||||
self.buf.extend(char)
|
||||
else:
|
||||
char = bytes(bytearray((ord_char,)))
|
||||
self.buf.append(ord_char)
|
||||
|
||||
if char in self.keymap:
|
||||
if self.keymap is self.compiled_keymap:
|
||||
# sanity check, buffer is empty when a special key comes
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue