Lister les namespaces et sous-namespaces à partir d'un namespace spécifié
Procédures
###############################################################################
### Retourne une liste de tous les namespaces et sous-namespaces, à partir du
### namespace de départ specifié ($current_namespace) qui sera lui aussi inclus.
### $counter doit valoir 0 lors de l'appel initial.
###############################################################################
proc list_namespaces {counter current_namespace} {
variable namespace_list
if { !$counter } {
incr counter
lappend namespace_list $current_namespace
}
if {[set children [namespace children $current_namespace]] ne ""} {
lappend namespace_list {*}$children
}
set current_namespace [lindex $namespace_list $counter]
incr counter 1
list_namespaces_callback $counter $current_namespace
}
proc list_namespaces_callback {counter current_namespace} {
variable namespace_list
if { $counter + 1 <= [llength $namespace_list] } {
list_namespaces $counter $current_namespace
} else {
set output $namespace_list
unset namespace_list
return $output
}
}
Exemple
list_namespaces 0 ::tcl
Tcl: ::tcl ::tcl::clock ::tcl::info ::tcl::dict ::tcl::tm ::tcl::mathop ::tcl::unsupported ::tcl::Pkg ::tcl::mathfunc ::tcl::chan ::tcl::string