Index: generic/gentclAPI.decls =================================================================== diff -u -r73e2bbd4ee9e0acbe38dd7bb634a9ad11e7b3bf5 -raef0c8541f096447f838953d4f4de16e19dbf6c1 --- generic/gentclAPI.decls (.../gentclAPI.decls) (revision 73e2bbd4ee9e0acbe38dd7bb634a9ad11e7b3bf5) +++ generic/gentclAPI.decls (.../gentclAPI.decls) (revision aef0c8541f096447f838953d4f4de16e19dbf6c1) @@ -299,7 +299,7 @@ infoObjectMethod method XOTclObjInfoMethodMethod { {-argName "object" -required 1 -type object} {-argName "-per-object"} - {-argName "infomethodsubcmd" -type "definition|name|type"} + {-argName "infomethodsubcmd" -type "definition|name|parameter|type"} {-argName "name"} } ### TODO should object methods have -per-object? Index: generic/tclAPI.h =================================================================== diff -u -r73e2bbd4ee9e0acbe38dd7bb634a9ad11e7b3bf5 -raef0c8541f096447f838953d4f4de16e19dbf6c1 --- generic/tclAPI.h (.../tclAPI.h) (revision 73e2bbd4ee9e0acbe38dd7bb634a9ad11e7b3bf5) +++ generic/tclAPI.h (.../tclAPI.h) (revision aef0c8541f096447f838953d4f4de16e19dbf6c1) @@ -1,12 +1,12 @@ static int convertToInfomethodsubcmd(Tcl_Interp *interp, Tcl_Obj *objPtr, XOTclParam CONST *pPtr, ClientData *clientData) { int index, result; - static CONST char *opts[] = {"definition", "name", "type", NULL}; + static CONST char *opts[] = {"definition", "name", "parameter", "type", NULL}; result = Tcl_GetIndexFromObj(interp, objPtr, opts, "infomethodsubcmd", 0, &index); *clientData = (ClientData) index + 1; return result; } -enum InfomethodsubcmdIdx {InfomethodsubcmdNULL, InfomethodsubcmdDefinitionIdx, InfomethodsubcmdNameIdx, InfomethodsubcmdTypeIdx}; +enum InfomethodsubcmdIdx {InfomethodsubcmdNULL, InfomethodsubcmdDefinitionIdx, InfomethodsubcmdNameIdx, InfomethodsubcmdParameterIdx, InfomethodsubcmdTypeIdx}; static int convertToMethodtype(Tcl_Interp *interp, Tcl_Obj *objPtr, XOTclParam CONST *pPtr, ClientData *clientData) { int index, result; Index: generic/xotcl.c =================================================================== diff -u -r666f7ad2cb2562f3d62fc9aea54efb9b0826f6b0 -raef0c8541f096447f838953d4f4de16e19dbf6c1 --- generic/xotcl.c (.../xotcl.c) (revision 666f7ad2cb2562f3d62fc9aea54efb9b0826f6b0) +++ generic/xotcl.c (.../xotcl.c) (revision aef0c8541f096447f838953d4f4de16e19dbf6c1) @@ -9534,12 +9534,21 @@ withPer_object = 1; } - if (subcmd == InfomethodsubcmdNameIdx) { - resultObj = Tcl_NewStringObj(withPer_object ? "" : "::xotcl::classes", -1); - Tcl_AppendObjToObj(resultObj, object->cmdName); - Tcl_AppendStringsToObj(resultObj, "::", methodName, (char *) NULL); - Tcl_SetObjResult(interp, resultObj); - return TCL_OK; + switch (subcmd) { + case InfomethodsubcmdNameIdx: + { + resultObj = Tcl_NewStringObj(withPer_object ? "" : "::xotcl::classes", -1); + Tcl_AppendObjToObj(resultObj, object->cmdName); + Tcl_AppendStringsToObj(resultObj, "::", methodName, (char *) NULL); + Tcl_SetObjResult(interp, resultObj); + return TCL_OK; + } + + case InfomethodsubcmdParameterIdx: + { + Tcl_Command importedCmd = GetOriginalCommand(cmd); + return ListCmdParams(interp, importedCmd, methodName, 0); + } } /*