From 3c4669061baadac105c274bd0d30aadb27b0b642 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Ekl=C3=B6f?= Date: Tue, 30 Apr 2024 10:50:31 +0200 Subject: [PATCH] scripts: generate-builtin-terminfo: use \xNN for control characters Instead of emitting raw control characters (for e.g. bel, cub1 and kbs), use \xNN C string escapes. --- scripts/generate-builtin-terminfo.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/scripts/generate-builtin-terminfo.py b/scripts/generate-builtin-terminfo.py index 61bd4a3c..4bb16359 100755 --- a/scripts/generate-builtin-terminfo.py +++ b/scripts/generate-builtin-terminfo.py @@ -56,9 +56,9 @@ class StringCapability(Capability): def translate_ctrl_chr(m): ctrl = m.group(1) if ctrl == '?': - return chr(0x7f) - return chr(ord(ctrl) - ord('@')) - value = re.sub('\^([@A-Z[\\\\\]^_?])', translate_ctrl_chr, value) + return '\\x7f' + return f'\\x{ord(ctrl) - ord('@'):02x}' + value = re.sub(r'\^([@A-Z[\\\\\]^_?])', translate_ctrl_chr, value) # Ensure e.g. \E7 (or \e7) doesn’t get translated to “\0337”, # which would be interpreted as octal 337 by the C compiler