Skip to content

Commit e28f863

Browse files
[3.13] gh-121609: Fix pasting of characters containing unicode character joiner (GH-121667) (#121733)
Co-authored-by: Marta Gómez Macías <[email protected]>
1 parent e8594aa commit e28f863

File tree

3 files changed

+7
-1
lines changed

3 files changed

+7
-1
lines changed

Lib/_pyrepl/reader.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,6 @@ def disp_str(buffer: str) -> tuple[str, list[int]]:
5858
elif unicodedata.category(c).startswith("C"):
5959
c = r"\u%04x" % ord(c)
6060
s.append(c)
61-
b.append(str_width(c))
6261
b.extend([0] * (len(c) - 1))
6362
else:
6463
s.append(c)

Lib/test/test_pyrepl/test_reader.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,12 @@ def test_setpos_for_xy_simple(self):
8989
reader.setpos_from_xy(0, 0)
9090
self.assertEqual(reader.pos, 0)
9191

92+
def test_control_characters(self):
93+
code = 'flag = "🏳️‍🌈"'
94+
events = code_to_events(code)
95+
reader, _ = handle_all_events(events)
96+
self.assert_screen_equals(reader, 'flag = "🏳️\\u200d🌈"')
97+
9298
def test_setpos_from_xy_multiple_lines(self):
9399
# fmt: off
94100
code = (
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Fix pasting of characters containing unicode character joiners in the new REPL. Patch by Marta Gomez Macias

0 commit comments

Comments
 (0)