From 30fb06bce3c76c7f37d8649aa33927f38ed194a9 Mon Sep 17 00:00:00 2001 From: mescalinum Date: Fri, 28 Oct 2011 19:25:27 +0000 Subject: add open menu svn path=/trunk/externals/loaders/tclpd/; revision=15671 --- tcl_loader.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'tcl_loader.c') diff --git a/tcl_loader.c b/tcl_loader.c index 0766a8c..5167cec 100644 --- a/tcl_loader.c +++ b/tcl_loader.c @@ -2,6 +2,10 @@ #include #include +/* from tcl_class.c: */ +//void source_table_remove(const char *object_name); +void source_table_add(const char *object_name, const char *source_path); + extern int tclpd_do_load_lib(t_canvas *canvas, char *objectname) { #ifdef DEBUG post("Tcl loader: registering tcl class loader mechanism"); @@ -20,12 +24,12 @@ extern int tclpd_do_load_lib(t_canvas *canvas, char *objectname) { return (1); } - /* try looking in the path for (objectname).(tcl) ... */ + /* try looking in the path for (objectname).(tcl) ... */ if ((fd = canvas_open(canvas, objectname, ".tcl", dirbuf, &nameptr, MAXPDSTRING, 1)) >= 0) goto gotone; - /* next try (objectname)/(classname).(tcl) ... */ + /* next try (objectname)/(classname).(tcl) ... */ strncpy(filename, objectname, MAXPDSTRING); filename[MAXPDSTRING-2] = 0; strcat(filename, "/"); @@ -40,7 +44,7 @@ extern int tclpd_do_load_lib(t_canvas *canvas, char *objectname) { gotone: close(fd); class_set_extern_dir(gensym(dirbuf)); - /* rebuild the absolute pathname */ + /* rebuild the absolute pathname */ strncpy(filename, dirbuf, MAXPDSTRING); filename[MAXPDSTRING-2] = 0; strcat(filename, "/"); @@ -55,6 +59,7 @@ gotone: // load tcl external: result = Tcl_EvalFile(tcl_for_pd, filename); if(result == TCL_OK) { + source_table_add(objectname, filename); post("Tcl loader: loaded %s", filename); } else { post("Tcl loader: error trying to load %s", filename); -- cgit v1.2.1