SF patch #443759: Add Interface to readline's add_history
This was submitted by Moshe, but apparently he's too busy to check it
in himself. He wrote:
Here is a function in GNU readline called add_history,
which is used to manage the history list. Though Python
uses this function internally, it does not expose it to
the Python programmer. This patch adds direct interface
to this function with documentation.
This could be used by friendly modules to "seed" the
history with commands.
diff --git a/Doc/lib/libreadline.tex b/Doc/lib/libreadline.tex
index 7350845..3988052 100644
--- a/Doc/lib/libreadline.tex
+++ b/Doc/lib/libreadline.tex
@@ -96,6 +96,10 @@
Get the readline word delimiters for tab-completion.
\end{funcdesc}
+\begin{funcdesc}{add_history}{line}
+Append a line to the history buffer, as if it was the last line typed.
+\end{funcdesc}
+
\begin{seealso}
\seemodule{rlcompleter}{Completion of Python identifiers at the
diff --git a/Modules/readline.c b/Modules/readline.c
index 49839c4..aa29a61 100644
--- a/Modules/readline.c
+++ b/Modules/readline.c
@@ -287,6 +287,23 @@
set_completer_delims(string) -> None\n\
set the readline word delimiters for tab-completion";
+static PyObject *
+py_add_history(PyObject *self, PyObject *args)
+{
+ char *line;
+
+ if(!PyArg_ParseTuple(args, "s:add_history", &line)) {
+ return NULL;
+ }
+ add_history(line);
+ Py_INCREF(Py_None);
+ return Py_None;
+}
+
+static char doc_add_history[] = "\
+add_history(string) -> None\n\
+add a line to the history buffer";
+
/* get the tab-completion word-delimiters that readline uses */
@@ -375,6 +392,7 @@
{"set_completer_delims", set_completer_delims,
METH_VARARGS, doc_set_completer_delims},
+ {"add_history", py_add_history, METH_VARARGS, doc_add_history},
{"get_completer_delims", get_completer_delims,
METH_OLDARGS, doc_get_completer_delims},