From bf1cfb8e46860bbeda72f16e44ca8c34c2d8727c Mon Sep 17 00:00:00 2001 From: deathaxe Date: Wed, 23 Apr 2025 19:26:34 +0200 Subject: [PATCH] Fix CSI + HPA sequence This commit fixes `HPA` character, which is `U+0060` according to https://vt100.net/docs/vt510-rm/HPA.html, but not `U+0027`. --- pyte/escape.py | 3 ++- tests/test_stream.py | 28 ++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/pyte/escape.py b/pyte/escape.py index 7dfd6b8..613eea0 100644 --- a/pyte/escape.py +++ b/pyte/escape.py @@ -149,4 +149,5 @@ DECSTBM = "r" #: *Horizontal position adjust*: Same as :data:`CHA`. -HPA = "'" +HPA = "`" + diff --git a/tests/test_stream.py b/tests/test_stream.py index 23eb357..960b8a6 100644 --- a/tests/test_stream.py +++ b/tests/test_stream.py @@ -332,3 +332,31 @@ def test_byte_stream_select_other_charset(): # c) enable utf-8 stream.select_other_charset("G") assert stream.use_utf8 + + +def test_csi_cha(): + screen = pyte.Screen(10, 2) + stream = pyte.Stream(screen) + # before + assert screen.cursor.x == 0 + assert screen.cursor.y == 0 + assert screen.display[0] == " " + # set cursor to column absolute + stream.feed("\x9b4`text") + assert screen.cursor.x == 7 + assert screen.cursor.y == 0 + assert screen.display[0] == " text " + + +def test_csi_hpa(): + screen = pyte.Screen(10, 2) + stream = pyte.Stream(screen) + # before + assert screen.cursor.x == 0 + assert screen.cursor.y == 0 + assert screen.display[0] == " " + # set cursor to column absolute + stream.feed("\x9b4`text") + assert screen.cursor.x == 7 + assert screen.cursor.y == 0 + assert screen.display[0] == " text "