The \module{readline} module defines the following functions:
-\begin{funcdesc}{readline}{\optional{prompt}}
-Get a single line of input from the user.
-\end{funcdesc}
-
\begin{funcdesc}{parse_and_bind}{string}
Parse and execute single line of a readline init file.
\end{funcdesc}
\end{verbatim}
The following example extends the \class{code.InteractiveConsole} class to
-support command line editing and history save/restore.
+support history save/restore.
\begin{verbatim}
import code
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}
Extension modules
-----------------
-- The readline module now exposes the readline() function to the Python
- programmer. readline.readline() should be a drop-in replacement for
- raw_input() but coupled with the other readline module functionality allow
- programmers to offer history and input recall to their users.
-
- operator.isMappingType() and operator.isSequenceType() now give
fewer false positives.
#endif
-/* Exported function to get a line from the user */
-
-static PyObject *
-py_readline(PyObject *self, PyObject *args)
-{
- char *s = NULL;
- char *line = NULL;
- if (!PyArg_ParseTuple(args, "|s:readline", &s))
- return NULL;
- line = readline(s);
- if (line == NULL) {
- PyErr_SetString(PyExc_EOFError, "End of file on input");
- return NULL;
- }
- return PyString_FromString(line);
-}
-
-PyDoc_STRVAR(doc_py_readline,
-"readline([prompt]) -> line\n\
-Prompt for and read a line of text. Raise EOFError on EOF.");
-
-
/* Exported function to send one line to readline's init file parser */
static PyObject *
static struct PyMethodDef readline_methods[] =
{
- {"readline", py_readline, METH_VARARGS, doc_py_readline},
{"parse_and_bind", parse_and_bind, METH_VARARGS, doc_parse_and_bind},
{"get_line_buffer", get_line_buffer, METH_NOARGS, doc_get_line_buffer},
{"insert_text", insert_text, METH_VARARGS, doc_insert_text},