aboutsummaryrefslogtreecommitdiff
path: root/tcl_loader.c
diff options
context:
space:
mode:
authormescalinum <mescalinum@users.sourceforge.net>2011-10-28 19:25:27 +0000
committermescalinum <mescalinum@users.sourceforge.net>2011-10-28 19:25:27 +0000
commit30fb06bce3c76c7f37d8649aa33927f38ed194a9 (patch)
tree83783794bfe5f28afcb94731de53b88eabcb436e /tcl_loader.c
parent7376fa909b828167badf549834f532046ada066d (diff)
add open menu
svn path=/trunk/externals/loaders/tclpd/; revision=15671
Diffstat (limited to 'tcl_loader.c')
-rw-r--r--tcl_loader.c11
1 files changed, 8 insertions, 3 deletions
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 <string.h>
#include <unistd.h>
+/* 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);