aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/Lib/_pyrepl/simple_interact.py
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/_pyrepl/simple_interact.py')
-rw-r--r--Lib/_pyrepl/simple_interact.py16
1 files changed, 4 insertions, 12 deletions
diff --git a/Lib/_pyrepl/simple_interact.py b/Lib/_pyrepl/simple_interact.py
index a5033496712..a065174ad42 100644
--- a/Lib/_pyrepl/simple_interact.py
+++ b/Lib/_pyrepl/simple_interact.py
@@ -77,7 +77,7 @@ REPL_COMMANDS = {
"exit": _sitebuiltins.Quitter('exit', ''),
"quit": _sitebuiltins.Quitter('quit' ,''),
"copyright": _sitebuiltins._Printer('copyright', sys.copyright),
- "help": "help",
+ "help": _sitebuiltins._Helper(),
"clear": _clear_screen,
"\x1a": _sitebuiltins.Quitter('\x1a', ''),
}
@@ -124,18 +124,10 @@ def run_multiline_interactive_console(
reader.history.pop() # skip internal commands in history
command = REPL_COMMANDS[statement]
if callable(command):
- command()
+ # Make sure that history does not change because of commands
+ with reader.suspend_history():
+ command()
return True
-
- if isinstance(command, str):
- # Internal readline commands require a prepared reader like
- # inside multiline_input.
- reader.prepare()
- reader.refresh()
- reader.do_cmd((command, [statement]))
- reader.restore()
- return True
-
return False
while True: