#-----------------------------------------------------------------------------
# tclx.tcl -- Extended Tcl initialization.
#-----------------------------------------------------------------------------
# $Id: tclx.tcl,v 1.6 2005/11/21 18:37:58 hobbs Exp $
#-----------------------------------------------------------------------------
namespace eval ::tclx {
global auto_path auto_index tclx_library
if {[info exists tclx_library] && [string length $tclx_library]} {
set auto_index(buildpackageindex) \
{source [file join $tclx_library buildidx.tcl]}
if {![info exists auto_path] ||
[lsearch -exact $auto_path $tclx_library] == -1} {
lappend auto_path $tclx_library
}
}
variable file ""
variable dir ""
variable libfiles
array set libfiles {
arrayprocs.tcl 1
autoload.tcl 0
buildhelp.tcl 0
buildidx.tcl 0
compat.tcl 1
convlib.tcl 1
edprocs.tcl 1
events.tcl 1
fmath.tcl 1
forfile.tcl 1
globrecur.tcl 1
help.tcl 1
profrep.tcl 1
pushd.tcl 1
setfuncs.tcl 1
showproc.tcl 1
stringfile.tcl 1
tcllib.tcl 0
tclx.tcl 0
}
set dir [file dirname [info script]]
foreach file [array names libfiles] {
if {$libfiles($file)} {
uplevel \#0 [list source [file join $dir $file]]
}
}
if 0 {
# A pure Tcl equivalent to TclX's readdir, except that it includes
# . and .., which should be removed
proc ::readdir {args} {
set len [llength $args]
set ptn [list *]
if {![string equal $::tcl_platform(platform) "windows"]} {
lappend ptn .*
}
if {$len == 1} {
set dir [lindex $args 0]
} elseif {$len == 2} {
if {![string equal [lindex $args 0] "-hidden"]} {
return -code error \
"expected option of \"-hidden\", got \"[lindex $args 0]\""
}
if {[string equal $::tcl_platform(platform) "windows"]} {
lappend ptn .*
}
set dir [lindex $args 1]
} else {
set cmd [lindex [info level 0] 0]
return -code error \
"wrong \# args: $cmd ?-hidden? dirPath"
}
return [eval [list glob -tails -nocomplain -directory $dir] $ptn]
}
}
}; # end namespace tclx
Copyright 2K16 - 2K18 Indonesian Hacker Rulez