From b98a8ba14db919d6bf6b277c59ab20da16ed19cd Mon Sep 17 00:00:00 2001 From: Skip Montanaro Date: Sun, 23 May 2004 19:06:41 +0000 Subject: Add example that uses readline.readline(). --- Doc/lib/libreadline.tex | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/Doc/lib/libreadline.tex b/Doc/lib/libreadline.tex index cd2a80a..34d3a4c 100644 --- a/Doc/lib/libreadline.tex +++ b/Doc/lib/libreadline.tex @@ -159,3 +159,36 @@ atexit.register(readline.write_history_file, histfile) del os, histfile \end{verbatim} +The following example extends the \class{code.InteractiveConsole} class to +support command line editing and history save/restore. + +\begin{verbatim} +import code +import readline +import atexit +import os + +class HistoryConsole(code.InteractiveConsole): + def __init__(self, locals=None, filename="", + histfile=os.path.expanduser("~/.console-history")): + code.InteractiveConsole.__init__(self) + self.init_history(histfile) + + def init_history(self, histfile): + readline.parse_and_bind("tab: complete") + if hasattr(readline, "read_history_file"): + try: + readline.read_history_file(histfile) + except IOError: + pass + atexit.register(self.save_history, histfile) + + def raw_input(self, prompt=""): + line = readline.readline(prompt) + if line: + readline.add_history(line) + return line + + def save_history(self, histfile): + readline.write_history_file(histfile) +\end{verbatim} -- cgit v0.12