aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormescalinum <mescalinum@users.sourceforge.net>2011-11-14 17:12:09 +0000
committermescalinum <mescalinum@users.sourceforge.net>2011-11-14 17:12:09 +0000
commit1cfa4de1d848808738c9123a85764cd23f7b61d5 (patch)
tree433dd501d275f643c4fb532617c50127dd341d95
parent79ad58a64786e88e51edf300b881e41d61bf4595 (diff)
feature request 3436774: make $self namespace exist before calling constructor
svn path=/trunk/externals/loaders/tclpd/; revision=15746
-rw-r--r--tclpd.tcl9
1 files changed, 7 insertions, 2 deletions
diff --git a/tclpd.tcl b/tclpd.tcl
index dec7901..fe358ac 100644
--- a/tclpd.tcl
+++ b/tclpd.tcl
@@ -94,7 +94,7 @@ namespace eval ::pd {
}
proc ::${classname}::dispatcher {self function args} "
- if {\$function eq \"method\"} {
+ if {\$function eq {method}} {
set inlet \[lindex \$args 0\]
set selector \[lindex \$args 1\]
set argsr \[lrange \$args 2 end\]
@@ -107,7 +107,7 @@ namespace eval ::pd {
} else {
return -code error \"${classname}: no such method: \$i_s\"
}
- } elseif {\$function eq \"widgetbehavior\"} {
+ } elseif {\$function eq {widgetbehavior}} {
set subfunction \[lindex \$args 0\]
set argsr \[lrange \$args 1 end\]
set f ::${classname}::\${function}_\${subfunction}
@@ -115,6 +115,11 @@ namespace eval ::pd {
uplevel \[linsert \$argsr 0 \$f \$self]
}
} else {
+ # feature request 3436774
+ if {\$function eq {constructor}} {
+ namespace eval ::${classname}::\$self {}
+ }
+
uplevel \[linsert \$args 0 ::${classname}::\$function \$self\]
}
"