aboutsummaryrefslogtreecommitdiff
path: root/src/gpt_chat_cli/color.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/gpt_chat_cli/color.py')
-rw-r--r--src/gpt_chat_cli/color.py20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/gpt_chat_cli/color.py b/src/gpt_chat_cli/color.py
index ce1b182..9de82f1 100644
--- a/src/gpt_chat_cli/color.py
+++ b/src/gpt_chat_cli/color.py
@@ -90,3 +90,23 @@ def get_color_codes(no_color=False) -> ColorCode:
return NoColorColorCode
else:
return VT100ColorCode
+
+def surround_ansi_escapes(prompt, start = "\x01", end = "\x02"):
+ '''
+ Fixes issue on Linux with the readline module
+ See: https://github.com/python/cpython/issues/61539
+ '''
+ escaped = False
+ result = ""
+
+ for c in prompt:
+ if c == "\x1b" and not escaped:
+ result += start + c
+ escaped = True
+ elif c.isalpha() and escaped:
+ result += c + end
+ escaped = False
+ else:
+ result += c
+
+ return result