Index: generic/gentclAPI.tcl =================================================================== diff -u -rc96782fabd01fbfc8d11365dcc649d2788f78aa3 -rd79efb10b92ad2045196990af50bc042e60b88f4 --- generic/gentclAPI.tcl (.../gentclAPI.tcl) (revision c96782fabd01fbfc8d11365dcc649d2788f78aa3) +++ generic/gentclAPI.tcl (.../gentclAPI.tcl) (revision d79efb10b92ad2045196990af50bc042e60b88f4) @@ -32,12 +32,12 @@ set ::converter "" set ::objCmdProc "(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv \[\]);" -proc convertername {type argname} { - return [string totitle [string trimleft $argname -]] +proc convertername {type typename} { + return [string totitle [string trimleft $typename -]] } -proc createconverter {type argname} { - set name [convertername $type $argname] +proc createconverter {type typename} { + set name [convertername $type $typename] if {[info exists ::createdConverter($name)]} { return "" } @@ -54,7 +54,7 @@ int index, result; $opts (void)pPtr; - result = Tcl_GetIndexFromObj(interp, objPtr, opts, "$argname", 0, &index); + result = Tcl_GetIndexFromObj(interp, objPtr, opts, "$typename", 0, &index); *clientData = (ClientData) INT2PTR(index + 1); *outObjPtr = objPtr; return result; @@ -66,6 +66,7 @@ #puts stderr $parameterDefinitions set l [list] foreach parameterDefinition $parameterDefinitions { + array unset "" array set "" $parameterDefinition switch $(-type) { "" {set type NULL} @@ -85,9 +86,10 @@ "args" {set converter Nothing} "allargs" {set converter Nothing} "objpattern" {set converter Objpattern} - *|* { - set converter [convertername $type $(-argName)] - append ::converter [createconverter $type $(-argName)] + *|* { + if {![info exists (-typeName)]} {set (-typeName) $(-argName)} + set converter [convertername $type $(-typeName)] + append ::converter [createconverter $type $(-typeName)] set (-argName) $type append flags |NSF_ARG_IS_ENUMERATION } @@ -438,6 +440,7 @@ } set completed [list] foreach parameterDefinition $parameterDefinitions { + array unset "" array set "" {-required 0 -nrargs 1 -type "" -withObj 0} array set "" $parameterDefinition lappend completed [array get ""]