Patches item #448531, was opened at 2001-08-06 13:16
You can respond by visiting:
http://sourceforge.net/tracker/?func=detail&atid=303152&aid=448531&group_id=3152
Category: None
Group: None
Status: Open
Resolution: None
Priority: 5
Submitted By: Vlad Seryakov (seryakov)
>Assigned to: Kriston Rehberg (kriston)
Summary: Namespace support for new commands
Initial Comment:
In case when some custom namespaces have the same procs
as standard commands, this routine failes.
I explicitly put all standard commands in top level
namespace.
Below is new routine to be put into
aolserver/modules/tcl/namespace.tcl
proc _ns_getnamespace n {
namespace eval $n {
::set n [namespace current]
::set script ""
::foreach v [info vars] {
::switch $v {
n -
v -
import_procs -
script continue
default {
if [::info exists ${n}::$v] {
if [::array exists $v] {
::append script [::list variable $v]\n
::append script [::list array set $v [::array get $v]]\n
} else {
::append script [::list variable $v [::set $v]]\n
}
}
}
}
}
::set import_procs ""
::foreach p [::info procs] {
::set args ""
if { [namespace origin $p] == [namespace
which -command $p] } {
::foreach a [::info args $p] {
if [::info default $p $a def] {
::set a [::list $a $def]
}
::lappend args $a
}
::append script [::list proc $p $args [::info
body $p]]\n
} else {
::append import_procs [::list namespace
import [namespace origin $p]]\n
# ns_log Notice "@ namespace import
[namespace origin $p]"
}
}
::append script [concat namespace export [namespace
export]]\n
return [::list $script $import_procs]
}
}
----------------------------------------------------------------------
You can respond by visiting:
http://sourceforge.net/tracker/?func=detail&atid=303152&aid=448531&group_id=3152