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

Reply via email to