diff --git a/lib/modules/Tools.pmod/Hilfe.pmod b/lib/modules/Tools.pmod/Hilfe.pmod index 4f258cac79b828991908db263e86d7f34261f8c6..a0507510386202bd2cf5ca0fd126a86ff1c7d0d4 100644 --- a/lib/modules/Tools.pmod/Hilfe.pmod +++ b/lib/modules/Tools.pmod/Hilfe.pmod @@ -545,13 +545,20 @@ class StdinHilfe { write=predef::write; ::create(); + object(Stdio.Readline) readline = Stdio.Readline(); + readline->enable_history(512); - while(string s=Stdio.Readline.readline(strlen(input) ? ">> " : "> ")) + for(;;) { + readline->set_prompt(strlen(input) ? ">> " : "> "); + string s=readline->read(); + if(!s) + break; signal(signum("SIGINT"),signal_trap); add_input_line(s+"\n"); signal(signum("SIGINT")); } + destruct(readline); write("Terminal closed.\n"); } }