From cc924cad9149ec2249eb5b18658b2516a9014969 Mon Sep 17 00:00:00 2001 From: Thiago Jung Bauermann Date: Sat, 21 Mar 2009 03:13:02 +0000 Subject: gdb/ 2009-03-21 Jan Kratochvil Jim Blandy Thiago Jung Bauermann Tom Tromey Miscellaneous fixes to the Python code. * python/python-cmd.c (cmdpy_init): Accept keyword arguments. * python/python-value.c (valpy_string): Accept keyword arguments. (valpy_binop): Use `break' to exit from the TRY_CATCH block. Do not call value_to_value_object on NULL RES_VAL. (value_object_methods): Change `string' entry to also accept keyword arguments. (convert_value_from_python): Return a copy of the value if obj is a gdb.Value object. (value_object_methods): Mark the `string' method as accepting keywords, and show method "prototype" in the doc string. * python/python.c (get_parameter): Don't return inside a TRY_CATCH. gdb/doc/ 2009-03-21 Thiago Jung Bauermann * gdb.texinfo (Values From Inferior): Fix optional arguments markup. (Commands In Python): Adjust argument names of gdb.Command.__init__ to what the function accepts as keywords. gdb/testsuite/ 2009-03-21 Thiago Jung Bauermann * gdb.python/python-cmd.exp: Add tests for keyword arguments. * gdb.python/python-function.exp: Add test for function returning a GDB value. --- gdb/python/python-cmd.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'gdb/python/python-cmd.c') diff --git a/gdb/python/python-cmd.c b/gdb/python/python-cmd.c index 36cde34..8f59a22 100644 --- a/gdb/python/python-cmd.c +++ b/gdb/python/python-cmd.c @@ -336,16 +336,16 @@ parse_command_name (char *text, struct cmd_list_element ***base_list) /* Object initializer; sets up gdb-side structures for command. - Use: __init__(NAME, CMDCLASS, [COMPLETERCLASS, [PREFIX]]). + Use: __init__(NAME, COMMAND_CLASS [, COMPLETER_CLASS][, PREFIX]]). NAME is the name of the command. It may consist of multiple words, in which case the final word is the name of the new command, and earlier words must be prefix commands. - CMDCLASS is the kind of command. It should be one of the COMMAND_* + COMMAND_CLASS is the kind of command. It should be one of the COMMAND_* constants defined in the gdb module. - COMPLETERCLASS is the kind of completer. If not given, the + COMPLETER_CLASS is the kind of completer. If not given, the "complete" method will be used. Otherwise, it should be one of the COMPLETE_* constants defined in the gdb module. @@ -356,7 +356,7 @@ parse_command_name (char *text, struct cmd_list_element ***base_list) */ static int -cmdpy_init (PyObject *self, PyObject *args, PyObject *kwds) +cmdpy_init (PyObject *self, PyObject *args, PyObject *kw) { cmdpy_object *obj = (cmdpy_object *) self; char *name; @@ -366,6 +366,8 @@ cmdpy_init (PyObject *self, PyObject *args, PyObject *kwds) volatile struct gdb_exception except; struct cmd_list_element **cmd_list; char *cmd_name, *pfx_name; + static char *keywords[] = { "name", "command_class", "completer_class", + "prefix", NULL }; PyObject *is_prefix = NULL; int cmp; @@ -378,7 +380,7 @@ cmdpy_init (PyObject *self, PyObject *args, PyObject *kwds) return -1; } - if (! PyArg_ParseTuple (args, "si|iO", &name, &cmdtype, + if (! PyArg_ParseTupleAndKeywords (args, kw, "si|iO", keywords, &name, &cmdtype, &completetype, &is_prefix)) return -1; -- cgit v1.1