Index: library/nx/nx.tcl =================================================================== diff -u -r304c346008d3c471fa9350eb0b18813eec2a4be6 -r15d57478e3976d747741fd3df9bcb6ecccc7076d --- library/nx/nx.tcl (.../nx.tcl) (revision 304c346008d3c471fa9350eb0b18813eec2a4be6) +++ library/nx/nx.tcl (.../nx.tcl) (revision 15d57478e3976d747741fd3df9bcb6ecccc7076d) @@ -37,7 +37,7 @@ # foreach cmd [info command ::nsf::cmd::Object::*] { set cmdName [namespace tail $cmd] - if {$cmdName in [list "exists" "instvar"]} continue + if {$cmdName in [list "exists" "instvar" "requireNamespace"]} continue ::nsf::alias Object $cmdName $cmd } @@ -325,6 +325,25 @@ ::nsf::setter [::nsf::current object] $methodName } + # Add method "require" + # + Object method require {what args} { + switch -- $what { + object { + set what [lindex $args 0] + if {$what eq "method"} { + ::nsf::require_method [::nx::self] [lindex $args 1] 1 + } + } + method { + ::nsf::require_method [::nx::self] [lindex $args 0] 0 + } + namespace { + ::nsf::dispatch [self] ::nsf::cmd::Object::requireNamespace + } + } + } + ######################## # Info definition ######################## @@ -1196,7 +1215,8 @@ } { if {![info exists object]} {set object [::nsf::current object]} if {![::nsf::objectproperty $object object]} {$class create $object} - $object requireNamespace + # reused in XOTcl, no "require" there, so use nsf primitiva + ::nsf::dispatch $object ::nsf::cmd::Object::requireNamespace if {$withnew} { set m [ScopedNew new -volatile \ -container $object -withclass $class] @@ -1290,7 +1310,8 @@ ::nsf::relation $obj object-filter [::nsf::relation $origin object-filter] ::nsf::relation $obj object-mixin [::nsf::relation $origin object-mixin] if {[$origin info hasnamespace]} { - $obj requireNamespace + # reused in XOTcl, no "require" there, so use nsf primitiva + ::nsf::dispatch $obj ::nsf::cmd::Object::requireNamespace } } else { namespace eval $dest {}