diff options
author | Tom Tromey <tom@tromey.com> | 2023-12-12 22:49:52 -0700 |
---|---|---|
committer | Tom Tromey <tom@tromey.com> | 2023-12-30 12:21:44 -0700 |
commit | 1f1c84ddf7bf810c18632806a358f61e824be18a (patch) | |
tree | ab745637a584efa6096a7ff32ae8dd7b4dbba890 | |
parent | 11e73fe731c553171f09b48636dfc347cb3ac266 (diff) | |
download | fsf-binutils-gdb-1f1c84ddf7bf810c18632806a358f61e824be18a.zip fsf-binutils-gdb-1f1c84ddf7bf810c18632806a358f61e824be18a.tar.gz fsf-binutils-gdb-1f1c84ddf7bf810c18632806a358f61e824be18a.tar.bz2 |
Add keywords to TuiWindow.write
The gdb docs promise that methods with more than two or more arguments
will accept keywords. However, I found that TuiWindow.write didn't
allow them. This patch adds the missing support.
-rw-r--r-- | gdb/python/py-tui.c | 9 | ||||
-rw-r--r-- | gdb/testsuite/gdb.python/tui-window.py | 3 |
2 files changed, 8 insertions, 4 deletions
diff --git a/gdb/python/py-tui.c b/gdb/python/py-tui.c index a84e38a..a28137e 100644 --- a/gdb/python/py-tui.c +++ b/gdb/python/py-tui.c @@ -476,13 +476,16 @@ gdbpy_tui_erase (PyObject *self, PyObject *args) /* Python function that writes some text to a TUI window. */ static PyObject * -gdbpy_tui_write (PyObject *self, PyObject *args) +gdbpy_tui_write (PyObject *self, PyObject *args, PyObject *kw) { + static const char *keywords[] = { "string", "full_window", nullptr }; + gdbpy_tui_window *win = (gdbpy_tui_window *) self; const char *text; int full_window = 0; - if (!PyArg_ParseTuple (args, "s|i", &text, &full_window)) + if (!gdb_PyArg_ParseTupleAndKeywords (args, kw, "s|i", keywords, + &text, &full_window)) return nullptr; REQUIRE_WINDOW (win); @@ -562,7 +565,7 @@ static PyMethodDef tui_object_methods[] = Return true if this TUI window is valid, false if not." }, { "erase", gdbpy_tui_erase, METH_NOARGS, "Erase the TUI window." }, - { "write", (PyCFunction) gdbpy_tui_write, METH_VARARGS, + { "write", (PyCFunction) gdbpy_tui_write, METH_VARARGS | METH_KEYWORDS, "Append a string to the TUI window." }, { NULL } /* Sentinel. */ }; diff --git a/gdb/testsuite/gdb.python/tui-window.py b/gdb/testsuite/gdb.python/tui-window.py index dc72cc4..47c4403 100644 --- a/gdb/testsuite/gdb.python/tui-window.py +++ b/gdb/testsuite/gdb.python/tui-window.py @@ -32,7 +32,8 @@ class TestWindow: self.win.erase() w = self.win.width h = self.win.height - self.win.write("Test: " + str(self.count) + " " + str(w) + "x" + str(h)) + self.win.write(string="Test: " + str(self.count) + " " + str(w) + "x" + str(h), + full_window=False) self.count = self.count + 1 # Tries to delete the title attribute. GDB will throw an error. |