From 9ea4e9fc1b4775a0e6b1c387a2a0965686c1c20e Mon Sep 17 00:00:00 2001 From: mescalinum Date: Fri, 14 Oct 2011 21:32:49 +0000 Subject: reorder tcl land into namespaces and streamline and standardize syntax svn path=/trunk/externals/loaders/tclpd/; revision=15600 --- tcl_loader.c | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) (limited to 'tcl_loader.c') diff --git a/tcl_loader.c b/tcl_loader.c index 95d0232..0766a8c 100644 --- a/tcl_loader.c +++ b/tcl_loader.c @@ -47,8 +47,13 @@ gotone: strncat(filename, nameptr, MAXPDSTRING-strlen(filename)); filename[MAXPDSTRING-1] = 0; + int result; + + // create the required tcl namespace for the class + tclpd_class_namespace_init(classname); + // load tcl external: - int result = Tcl_EvalFile(tcl_for_pd, filename); + result = Tcl_EvalFile(tcl_for_pd, filename); if(result == TCL_OK) { post("Tcl loader: loaded %s", filename); } else { @@ -57,6 +62,19 @@ gotone: return 0; } +#ifdef TCLPD_CALL_SETUP + // call the setup method: + char cmd[64]; + snprintf(cmd, 64, "::%s::setup", classname); + result = Tcl_Eval(tcl_for_pd, cmd); + if(result == TCL_OK) { + } else { + post("Tcl loader: error in %s %s::setup", filename, classname); + tclpd_interp_error(NULL, result); + return 0; + } +#endif // TCLPD_CALL_SETUP + class_set_extern_dir(&s_); sys_putonloadlist(objectname); return 1; -- cgit v1.2.1