int DefineNamespace( ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) { if (objc != 6) { Tcl_WrongNumArgs(interp, 1, objv, "DIBuilder scope name file line"); return TCL_ERROR; } DIBuilder *builder; if (GetDIBuilderFromObj(interp, objv[1], builder) != TCL_OK) return TCL_ERROR; DIScope *scope; if (GetMetadataFromObj(interp, objv[2], "scope", scope) != TCL_OK) return TCL_ERROR; std::string name = Tcl_GetString(objv[3]); DIFile *file; if (GetMetadataFromObj(interp, objv[4], "file", file) != TCL_OK) return TCL_ERROR; int line; if (Tcl_GetIntFromObj(interp, objv[5], &line) != TCL_OK) return TCL_ERROR; auto val = builder->createNameSpace(scope, name, file, line); Tcl_SetObjResult(interp, NewMetadataObj(val, "Namespace")); return TCL_OK; }