@@ -266,16 +266,18 @@ return -code error "Unknown type: $type" } } _ccode $handle " if (!Tcl_ObjSetVar2(${interp_name}, Tcl_NewStringObj(\"${arg}\", -1), NULL, _$arg, 0)) $return_failure;" } - _ccode $handle "" + + # Evaluate script _ccode $handle " tclrv = Tcl_Eval($interp_name, \"$cbody\");" _ccode $handle " if (tclrv != TCL_OK && tclrv != TCL_RETURN) $return_failure;" _ccode $handle "" + # Handle return value if {$rtype != "ok" && $rtype != "void"} { _ccode $handle " rv_interp = Tcl_GetObjResult(${interp_name});" } switch -- $rtype { @@ -308,10 +310,11 @@ Tcl_Obj* { _ccode $handle " rv = rv_interp;" } } + # Return value _ccode $handle "" if {$rtype != "void"} { _ccode $handle " return(rv);" } else { _ccode $handle " return;"