summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_readline.py
diff options
context:
space:
mode:
authorMartin Panter <vadmium+py@gmail.com>2016-06-14 08:49:51 (GMT)
committerMartin Panter <vadmium+py@gmail.com>2016-06-14 08:49:51 (GMT)
commit6d1d2f229e02cd2b45bdd46f5fdcc5b89dd682bd (patch)
tree802c9ecf9e5e1a34e369799ee9a5ea910e61d83d /Lib/test/test_readline.py
parent006a56ceda1ad9c9b1caf6be14d87b3fee87c89a (diff)
parent6afbc653a7bba73ecc56a6ba37632d25376dbe2f (diff)
downloadcpython-6d1d2f229e02cd2b45bdd46f5fdcc5b89dd682bd.zip
cpython-6d1d2f229e02cd2b45bdd46f5fdcc5b89dd682bd.tar.gz
cpython-6d1d2f229e02cd2b45bdd46f5fdcc5b89dd682bd.tar.bz2
Issue #16182: Merge readline update from 3.5
Diffstat (limited to 'Lib/test/test_readline.py')
-rw-r--r--Lib/test/test_readline.py22
1 files changed, 15 insertions, 7 deletions
diff --git a/Lib/test/test_readline.py b/Lib/test/test_readline.py
index 1c1e81c..6381f23 100644
--- a/Lib/test/test_readline.py
+++ b/Lib/test/test_readline.py
@@ -144,24 +144,32 @@ print("History length:", readline.get_current_history_length())
script = r"""import readline
-if readline.__doc__ and "libedit" in readline.__doc__:
- readline.parse_and_bind(r'bind ^B ed-prev-char')
- readline.parse_and_bind(r'bind "\t" rl_complete')
+is_editline = readline.__doc__ and "libedit" in readline.__doc__
+inserted = "[\xEFnserted]"
+macro = "|t\xEB[after]"
+set_pre_input_hook = getattr(readline, "set_pre_input_hook", None)
+if is_editline or not set_pre_input_hook:
# The insert_line() call via pre_input_hook() does nothing with Editline,
# so include the extra text that would have been inserted here
- readline.parse_and_bind('bind -s ^A "[\xEFnserted]|t\xEB[after]"')
+ macro = inserted + macro
+
+if is_editline:
+ readline.parse_and_bind(r'bind ^B ed-prev-char')
+ readline.parse_and_bind(r'bind "\t" rl_complete')
+ readline.parse_and_bind(r'bind -s ^A "{}"'.format(macro))
else:
readline.parse_and_bind(r'Control-b: backward-char')
readline.parse_and_bind(r'"\t": complete')
readline.parse_and_bind(r'set disable-completion off')
readline.parse_and_bind(r'set show-all-if-ambiguous off')
readline.parse_and_bind(r'set show-all-if-unmodified off')
- readline.parse_and_bind('Control-a: "|t\xEB[after]"')
+ readline.parse_and_bind(r'Control-a: "{}"'.format(macro))
def pre_input_hook():
- readline.insert_text("[\xEFnserted]")
+ readline.insert_text(inserted)
readline.redisplay()
-readline.set_pre_input_hook(pre_input_hook)
+if set_pre_input_hook:
+ set_pre_input_hook(pre_input_hook)
def completer(text, state):
if text == "t\xEB":