From c157641a4e68e4b292a2149232dc75c6171c9310 Mon Sep 17 00:00:00 2001 From: Thijs Schreijer Date: Mon, 9 Jun 2025 22:31:00 +0200 Subject: fix(term): report only printables as characters readkey would return "char" as type for control characters, yet they are not printable. --- spec/04-term_spec.lua | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'spec') diff --git a/spec/04-term_spec.lua b/spec/04-term_spec.lua index 0ce0033..5dea046 100644 --- a/spec/04-term_spec.lua +++ b/spec/04-term_spec.lua @@ -902,6 +902,14 @@ describe("Terminal:", function() end) + it("reads a control byte for single-byte control characters", function() + setbuffer("\000\031\127") + assert.are.same({"\000", "ctrl"}, {system.readansi(0)}) + assert.are.same({"\031", "ctrl"}, {system.readansi(0)}) + assert.are.same({"\127", "ctrl"}, {system.readansi(0)}) + end) + + it("reads a multi-byte characters one at a time", function() setbuffer(string.char(226, 130, 172) .. -- "€" single string.char(240, 159, 154, 128)) -- "🚀" double @@ -952,7 +960,7 @@ describe("Terminal:", function() it("returns a single character if no sequence is found", function() setbuffer("\27") - assert.are.same({"\27", "char"}, {system.readansi(0)}) + assert.are.same({"\27", "ctrl"}, {system.readansi(0)}) end) -- cgit v1.2.3-55-g6feb