Index: generic/gentclAPI.tcl =================================================================== diff -u -rdf67ed7db2b0cda881c4a9e704379a2a02d415b6 -r17ba2f1d86be4afd497d652b7ee39a5edc771a22 --- generic/gentclAPI.tcl (.../gentclAPI.tcl) (revision df67ed7db2b0cda881c4a9e704379a2a02d415b6) +++ generic/gentclAPI.tcl (.../gentclAPI.tcl) (revision 17ba2f1d86be4afd497d652b7ee39a5edc771a22) @@ -69,13 +69,20 @@ set (-argName) $type append flags |NSF_ARG_IS_ENUMERATION } + default { + if {[info exists ::ptrConverter($type)]} { + set converter Pointer + } else { + error "unknown type $type" + } + } } - if {$converter in {Tclobj Integer Int32 Boolean String Class Object}} { + if {$converter in {Tclobj Integer Int32 Boolean String Class Object Pointer}} { set conv Nsf_ConvertTo$converter } else { set conv ConvertTo$converter } - lappend l "{\"$argName\", $flags, $(-nrargs), $conv, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}" + lappend l "{\"$argName\", $flags, $(-nrargs), $conv, NULL,NULL,\"$(-type)\",NULL,NULL,NULL,NULL,NULL}" } if {[llength $l] == 0} { return "{NULL, 0, 0, NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}" @@ -184,7 +191,13 @@ } *|* {set type "int "} default { - error "type '$(-type)' not allowed for argument" + if {[info exists ::ptrConverter($(-type))]} { + set type "$(-type) *" + set varName "$(-type)Ptr" + set calledArg $varName + } else { + error "type '$(-type)' not allowed for argument" + } } } }