From 79378ffd91a38e220a5421a04ff8a593ce4a7c7a Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Tue, 7 Oct 1997 14:53:21 +0000 Subject: [PATCH] Add get_line_buffer() and insert_text(), suggested by Michael McLay. --- Modules/readline.c | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/Modules/readline.c b/Modules/readline.c index aef51ca9773..1231e034cb9 100644 --- a/Modules/readline.c +++ b/Modules/readline.c @@ -107,12 +107,52 @@ for i in [0, 1, 2, ...] until it returns a non-string.\n\ It should return the next possible completion starting with 'text'.\ "; +/* Exported function to read the current line buffer */ + +static PyObject * +get_line_buffer(self, args) + PyObject *self; + PyObject *args; +{ + if (PyArg_NoArgs(args)) + return NULL; + return PyString_FromString(rl_line_buffer); +} + +static char doc_get_line_buffer[] = "\ +get_line_buffer([function]) -> string\n\ +return the current contents of the line buffer.\ +"; + +/* Exported function to insert text into the line buffer */ + +static PyObject * +insert_text(self, args) + PyObject *self; + PyObject *args; +{ + char *s; + if (!PyArg_ParseTuple(args, "s", &s)) + return NULL; + rl_insert_text(s); + Py_INCREF(Py_None); + return Py_None; +} + + +static char doc_insert_text[] = "\ +insert_text(string) -> None\n\ +Insert text into the command line.\ +"; + /* Table of functions exported by the module */ static struct PyMethodDef readline_methods[] = { {"parse_and_bind", parse_and_bind, 1, doc_parse_and_bind}, + {"get_line_buffer", get_line_buffer, 1, doc_get_line_buffer}, + {"insert_text", insert_text, 1, doc_insert_text}, {"read_init_file", read_init_file, 1, doc_read_init_file}, {"set_completer", set_completer, 1, doc_set_completer}, {0, 0}