summaryrefslogtreecommitdiffstats
path: root/library
diff options
context:
space:
mode:
authorhypnotoad <yoda@etoyoc.com>2018-10-01 18:01:13 (GMT)
committerhypnotoad <yoda@etoyoc.com>2018-10-01 18:01:13 (GMT)
commit8f20d609b90b49cc6559eae2a74f8e6da88f6350 (patch)
treee814e7e4961838c97bc474fefbc78ab221534cd8 /library
parentef381abdfdeed9634dea4013c542759ee33f5bcb (diff)
downloadtcl-8f20d609b90b49cc6559eae2a74f8e6da88f6350.zip
tcl-8f20d609b90b49cc6559eae2a74f8e6da88f6350.tar.gz
tcl-8f20d609b90b49cc6559eae2a74f8e6da88f6350.tar.bz2
Eliminating whitespace changes introduced by the prior checkin
Diffstat (limited to 'library')
-rw-r--r--library/auto.tcl524
1 files changed, 264 insertions, 260 deletions
diff --git a/library/auto.tcl b/library/auto.tcl
index 5ab056b..7ef5681 100644
--- a/library/auto.tcl
+++ b/library/auto.tcl
@@ -22,178 +22,182 @@
proc auto_reset {} {
global auto_execs auto_index auto_path
if {[array exists auto_index]} {
- foreach cmdName [array names auto_index] {
- set fqcn [namespace which $cmdName]
- if {$fqcn eq ""} {
- continue
- }
- rename $fqcn {}
- }
+ foreach cmdName [array names auto_index] {
+ set fqcn [namespace which $cmdName]
+ if {$fqcn eq ""} {
+ continue
+ }
+ rename $fqcn {}
+ }
}
unset -nocomplain auto_execs auto_index ::tcl::auto_oldpath
if {[catch {llength $auto_path}]} {
- set auto_path [list [info library]]
+ set auto_path [list [info library]]
} elseif {[info library] ni $auto_path} {
- lappend auto_path [info library]
+ lappend auto_path [info library]
}
}
# tcl_findLibrary --
#
-# This is a utility for extensions that searches for a library directory
-# using a canonical searching algorithm. A side effect is to source the
-# initialization script and set a global library variable.
+# This is a utility for extensions that searches for a library directory
+# using a canonical searching algorithm. A side effect is to source the
+# initialization script and set a global library variable.
#
# Arguments:
-# basename Prefix of the directory name, (e.g., "tk")
-# version Version number of the package, (e.g., "8.0")
-# patch Patchlevel of the package, (e.g., "8.0.3")
-# initScript Initialization script to source (e.g., tk.tcl)
-# enVarName environment variable to honor (e.g., TK_LIBRARY)
-# varName Global variable to set when done (e.g., tk_library)
+# basename Prefix of the directory name, (e.g., "tk")
+# version Version number of the package, (e.g., "8.0")
+# patch Patchlevel of the package, (e.g., "8.0.3")
+# initScript Initialization script to source (e.g., tk.tcl)
+# enVarName environment variable to honor (e.g., TK_LIBRARY)
+# varName Global variable to set when done (e.g., tk_library)
proc tcl_findLibrary {basename version patch initScript enVarName varName} {
upvar #0 $varName the_library
global auto_path env tcl_platform
+
set dirs {}
set errors {}
# The C application may have hardwired a path, which we honor
if {[info exists the_library] && $the_library ne ""} {
- lappend dirs $the_library
+ lappend dirs $the_library
} else {
- # Do the canonical search
- #
- # 1. From an environment variable, if it exists. Placing this first
- # gives the end-user ultimate control to work-around any bugs, or
- # to customize.
+ # Do the canonical search
+
+ # 1. From an environment variable, if it exists. Placing this first
+ # gives the end-user ultimate control to work-around any bugs, or
+ # to customize.
+
if {[info exists env($enVarName)]} {
lappend dirs $env($enVarName)
}
- catch {
- set found 0
- set root [zipfs root]
- set mountpoint [file join $root lib [string tolower $basename]]
- lappend dirs [file join $root app ${basename}_library]
- lappend dirs [file join $root lib $mountpoint ${basename}_library]
- lappend dirs [file join $root lib $mountpoint]
- if {![zipfs exists [file join $root app ${basename}_library]] \
- && ![zipfs exists $mountpoint]} {
- set found 0
- foreach pkgdat [info loaded] {
- lassign $pkgdat dllfile dllpkg
- if {[string tolower $dllpkg] ne [string tolower $basename]} continue
- if {$dllfile eq {}} {
- # Loaded statically
- break
- }
+ catch {
+ set found 0
+ set root [zipfs root]
+ set mountpoint [file join $root lib [string tolower $basename]]
+ lappend dirs [file join $root app ${basename}_library]
+ lappend dirs [file join $root lib $mountpoint ${basename}_library]
+ lappend dirs [file join $root lib $mountpoint]
+ if {![zipfs exists [file join $root app ${basename}_library]] \
+ && ![zipfs exists $mountpoint]} {
+ set found 0
+ foreach pkgdat [info loaded] {
+ lassign $pkgdat dllfile dllpkg
+ if {[string tolower $dllpkg] ne [string tolower $basename]} continue
+ if {$dllfile eq {}} {
+ # Loaded statically
+ break
+ }
+ set found 1
+ zipfs mount $mountpoint $dllfile
+ break
+ }
+ if {!$found} {
+ set paths {}
+ lappend paths [file join $root app]
+ lappend paths [::${basename}::pkgconfig get libdir,runtime]
+ lappend paths [::${basename}::pkgconfig get bindir,runtime]
+ if {[catch {::${basename}::pkgconfig get zipfile,runtime} zipfile]} {
+ set zipfile [string tolower \
+ "lib${basename}_[join [list {*}[split $version .] {*}$patch] _].zip"]
+ }
+ lappend paths [file dirname [file join [pwd] [info nameofexecutable]]]
+ foreach path $paths {
+ set archive [file join $path $zipfile]
+ if {![file exists $archive]} continue
+ zipfs mount $mountpoint $archive
+ if {[zipfs exists [file join $mountpoint ${basename}_library $initScript]]} {
+ lappend dirs [file join $mountpoint ${basename}_library]
set found 1
- zipfs mount $mountpoint $dllfile
break
- }
- if {!$found} {
- set paths {}
- lappend paths [file join $root app]
- lappend paths [::${basename}::pkgconfig get libdir,runtime]
- lappend paths [::${basename}::pkgconfig get bindir,runtime]
- if {[catch {::${basename}::pkgconfig get zipfile,runtime} zipfile]} {
- set zipfile [string tolower \
- "lib${basename}_[join [list {*}[split $version .] {*}$patch] _].zip"]
- }
- lappend paths [file dirname [file join [pwd] [info nameofexecutable]]]
- foreach path $paths {
- set archive [file join $path $zipfile]
- if {![file exists $archive]} continue
- zipfs mount $mountpoint $archive
- if {[zipfs exists [file join $mountpoint ${basename}_library $initScript]]} {
- lappend dirs [file join $mountpoint ${basename}_library]
- set found 1
- break
- } elseif {[zipfs exists [file join $mountpoint $initScript]]} {
- lappend dirs [file join $mountpoint $initScript]
- set found 1
- break
- } else {
- catch {zipfs unmount $archive}
- }
+ } elseif {[zipfs exists [file join $mountpoint $initScript]]} {
+ lappend dirs [file join $mountpoint $initScript]
+ set found 1
+ break
+ } else {
+ catch {zipfs unmount $archive}
}
}
}
- } ; # catch
-
- # 2. In the package script directory registered within the
- # configuration of the package itself.
- catch {
- lappend dirs [::${basename}::pkgconfig get scriptdir,runtime]
- }
-
- # 3. Relative to auto_path directories. This checks relative to the
- # Tcl library as well as allowing loading of libraries added to the
- # auto_path that is not relative to the core library or binary paths.
- foreach d $auto_path {
- lappend dirs [file join $d $basename$version]
- if {$tcl_platform(platform) eq "unix"
- && $tcl_platform(os) eq "Darwin"} {
- # 4. On MacOSX, check the Resources/Scripts subdir too
- lappend dirs [file join $d $basename$version Resources Scripts]
- }
- }
-
- # 3. Various locations relative to the executable
- # ../lib/foo1.0 (From bin directory in install hierarchy)
- # ../../lib/foo1.0 (From bin/arch directory in install hierarchy)
- # ../library (From unix directory in build hierarchy)
- #
- # Remaining locations are out of date (when relevant, they ought to be
- # covered by the $::auto_path seach above) and disabled.
- #
- # ../../library (From unix/arch directory in build hierarchy)
- # ../../foo1.0.1/library
- # (From unix directory in parallel build hierarchy)
- # ../../../foo1.0.1/library
- # (From unix/arch directory in parallel build hierarchy)
+ }
+ }
+
+ # 2. In the package script directory registered within the
+ # configuration of the package itself.
+
+ catch {
+ lappend dirs [::${basename}::pkgconfig get scriptdir,runtime]
+ }
+
+ # 3. Relative to auto_path directories. This checks relative to the
+ # Tcl library as well as allowing loading of libraries added to the
+ # auto_path that is not relative to the core library or binary paths.
+ foreach d $auto_path {
+ lappend dirs [file join $d $basename$version]
+ if {$tcl_platform(platform) eq "unix"
+ && $tcl_platform(os) eq "Darwin"} {
+ # 4. On MacOSX, check the Resources/Scripts subdir too
+ lappend dirs [file join $d $basename$version Resources Scripts]
+ }
+ }
+
+ # 3. Various locations relative to the executable
+ # ../lib/foo1.0 (From bin directory in install hierarchy)
+ # ../../lib/foo1.0 (From bin/arch directory in install hierarchy)
+ # ../library (From unix directory in build hierarchy)
+ #
+ # Remaining locations are out of date (when relevant, they ought to be
+ # covered by the $::auto_path seach above) and disabled.
+ #
+ # ../../library (From unix/arch directory in build hierarchy)
+ # ../../foo1.0.1/library
+ # (From unix directory in parallel build hierarchy)
+ # ../../../foo1.0.1/library
+ # (From unix/arch directory in parallel build hierarchy)
set parentDir [file dirname [file dirname [info nameofexecutable]]]
set grandParentDir [file dirname $parentDir]
lappend dirs [file join $parentDir lib $basename$version]
lappend dirs [file join $grandParentDir lib $basename$version]
lappend dirs [file join $parentDir library]
- if {0} {
- lappend dirs [file join $grandParentDir library]
- lappend dirs [file join $grandParentDir $basename$patch library]
- lappend dirs [file join [file dirname $grandParentDir] \
- $basename$patch library]
- }
+ if {0} {
+ lappend dirs [file join $grandParentDir library]
+ lappend dirs [file join $grandParentDir $basename$patch library]
+ lappend dirs [file join [file dirname $grandParentDir] \
+ $basename$patch library]
+ }
}
# uniquify $dirs in order
array set seen {}
foreach i $dirs {
- # Make sure $i is unique under normalization. Avoid repeated [source].
- if {[interp issafe]} {
- # Safe interps have no [file normalize].
- set norm $i
- } else {
- set norm [file normalize $i]
- }
- if {[info exists seen($norm)]} {
- continue
- }
- set seen($norm) {}
- set the_library $i
- set file [file join $i $initScript]
-
- # source everything when in a safe interpreter because we have a
- # source command, but no file exists command
-
- if {[interp issafe] || [file exists $file]} {
- if {![catch {uplevel #0 [list source $file]} msg opts]} {
- return
+ # Make sure $i is unique under normalization. Avoid repeated [source].
+ if {[interp issafe]} {
+ # Safe interps have no [file normalize].
+ set norm $i
+ } else {
+ set norm [file normalize $i]
+ }
+ if {[info exists seen($norm)]} {
+ continue
+ }
+ set seen($norm) {}
+
+ set the_library $i
+ set file [file join $i $initScript]
+
+ # source everything when in a safe interpreter because we have a
+ # source command, but no file exists command
+
+ if {[interp issafe] || [file exists $file]} {
+ if {![catch {uplevel #0 [list source $file]} msg opts]} {
+ return
+ }
+ append errors "$file: $msg\n"
+ append errors [dict get $opts -errorinfo]\n
}
- append errors "$file: $msg\n"
- append errors [dict get $opts -errorinfo]\n
- }
}
unset -nocomplain the_library
set msg "Can't find a usable $initScript in the following directories: \n"
@@ -214,7 +218,7 @@ proc tcl_findLibrary {basename version patch initScript enVarName varName} {
# can't create the special parser and mess with its commands.
if {[interp issafe]} {
- return ;# Stop sourcing the file here
+ return ;# Stop sourcing the file here
}
# auto_mkindex --
@@ -224,11 +228,11 @@ if {[interp issafe]} {
# relevant files.
#
# Arguments:
-# dir - Name of the directory in which to create an index.
+# dir - Name of the directory in which to create an index.
-# args - Any number of additional arguments giving the names of files
-# within dir. If no additional are given auto_mkindex will look
-# for *.tcl.
+# args - Any number of additional arguments giving the names of files
+# within dir. If no additional are given auto_mkindex will look
+# for *.tcl.
proc auto_mkindex {dir args} {
if {[interp issafe]} {
@@ -246,17 +250,17 @@ proc auto_mkindex {dir args} {
append index "# element name is the name of a command and the value is\n"
append index "# a script that loads the command.\n\n"
if {![llength $args]} {
- set args *.tcl
+ set args *.tcl
}
auto_mkindex_parser::init
foreach file [lsort [glob -- {*}$args]] {
- try {
- append index [auto_mkindex_parser::mkindex $file]
- } on error {msg opts} {
- cd $oldDir
- return -options $opts $msg
- }
+ try {
+ append index [auto_mkindex_parser::mkindex $file]
+ } on error {msg opts} {
+ cd $oldDir
+ return -options $opts $msg
+ }
}
auto_mkindex_parser::cleanup
@@ -281,39 +285,39 @@ proc auto_mkindex_old {dir args} {
append index "# element name is the name of a command and the value is\n"
append index "# a script that loads the command.\n\n"
if {![llength $args]} {
- set args *.tcl
+ set args *.tcl
}
foreach file [lsort [glob -- {*}$args]] {
- set f ""
- set error [catch {
- set f [open $file]
- while {[gets $f line] >= 0} {
- if {[regexp {^proc[ ]+([^ ]*)} $line match procName]} {
- set procName [lindex [auto_qualify $procName "::"] 0]
- append index "set [list auto_index($procName)]"
- append index " \[list source \[file join \$dir [list $file]\]\]\n"
- }
- }
- close $f
- } msg opts]
- if {$error} {
- catch {close $f}
- cd $oldDir
- return -options $opts $msg
- }
+ set f ""
+ set error [catch {
+ set f [open $file]
+ while {[gets $f line] >= 0} {
+ if {[regexp {^proc[ ]+([^ ]*)} $line match procName]} {
+ set procName [lindex [auto_qualify $procName "::"] 0]
+ append index "set [list auto_index($procName)]"
+ append index " \[list source \[file join \$dir [list $file]\]\]\n"
+ }
+ }
+ close $f
+ } msg opts]
+ if {$error} {
+ catch {close $f}
+ cd $oldDir
+ return -options $opts $msg
+ }
}
set f ""
set error [catch {
- set f [open tclIndex w]
- puts -nonewline $f $index
- close $f
- cd $oldDir
+ set f [open tclIndex w]
+ puts -nonewline $f $index
+ close $f
+ cd $oldDir
} msg opts]
if {$error} {
- catch {close $f}
- cd $oldDir
- error $msg $info $code
- return -options $opts $msg
+ catch {close $f}
+ cd $oldDir
+ error $msg $info $code
+ return -options $opts $msg
}
}
@@ -330,50 +334,50 @@ namespace eval auto_mkindex_parser {
variable imports "" ;# keeps track of all imported cmds
variable initCommands ;# list of commands that create aliases
if {![info exists initCommands]} {
- set initCommands [list]
+ set initCommands [list]
}
proc init {} {
- variable parser
- variable initCommands
-
- if {![interp issafe]} {
- set parser [interp create -safe]
- $parser hide info
- $parser hide rename
- $parser hide proc
- $parser hide namespace
- $parser hide eval
- $parser hide puts
- foreach ns [$parser invokehidden namespace children ::] {
- # MUST NOT DELETE "::tcl" OR BAD THINGS HAPPEN!
- if {$ns eq "::tcl"} continue
- $parser invokehidden namespace delete $ns
- }
- foreach cmd [$parser invokehidden info commands ::*] {
- $parser invokehidden rename $cmd {}
- }
- $parser invokehidden proc unknown {args} {}
-
- # We'll need access to the "namespace" command within the
- # interp. Put it back, but move it out of the way.
-
- $parser expose namespace
- $parser invokehidden rename namespace _%@namespace
- $parser expose eval
- $parser invokehidden rename eval _%@eval
-
- # Install all the registered psuedo-command implementations
-
- foreach cmd $initCommands {
- eval $cmd
- }
- }
+ variable parser
+ variable initCommands
+
+ if {![interp issafe]} {
+ set parser [interp create -safe]
+ $parser hide info
+ $parser hide rename
+ $parser hide proc
+ $parser hide namespace
+ $parser hide eval
+ $parser hide puts
+ foreach ns [$parser invokehidden namespace children ::] {
+ # MUST NOT DELETE "::tcl" OR BAD THINGS HAPPEN!
+ if {$ns eq "::tcl"} continue
+ $parser invokehidden namespace delete $ns
+ }
+ foreach cmd [$parser invokehidden info commands ::*] {
+ $parser invokehidden rename $cmd {}
+ }
+ $parser invokehidden proc unknown {args} {}
+
+ # We'll need access to the "namespace" command within the
+ # interp. Put it back, but move it out of the way.
+
+ $parser expose namespace
+ $parser invokehidden rename namespace _%@namespace
+ $parser expose eval
+ $parser invokehidden rename eval _%@eval
+
+ # Install all the registered psuedo-command implementations
+
+ foreach cmd $initCommands {
+ eval $cmd
+ }
+ }
}
proc cleanup {} {
- variable parser
- interp delete $parser
- unset parser
+ variable parser
+ interp delete $parser
+ unset parser
}
}
@@ -385,7 +389,7 @@ namespace eval auto_mkindex_parser {
# that represents the index file.
#
# Arguments:
-# file Name of Tcl source file to be indexed.
+# file Name of Tcl source file to be indexed.
proc auto_mkindex_parser::mkindex {file} {
variable parser
@@ -462,9 +466,9 @@ proc auto_mkindex_parser::slavehook {cmd} {
# "tclIndex" file for auto-loading.
#
# Arguments:
-# name Name of command recognized in Tcl files.
-# arglist Argument list for command.
-# body Implementation of command to handle indexing.
+# name Name of command recognized in Tcl files.
+# arglist Argument list for command.
+# body Implementation of command to handle indexing.
proc auto_mkindex_parser::command {name arglist body} {
hook [list auto_mkindex_parser::commandInit $name $arglist $body]
@@ -476,9 +480,9 @@ proc auto_mkindex_parser::command {name arglist body} {
# called when the interpreter used by the parser is created.
#
# Arguments:
-# name Name of command recognized in Tcl files.
-# arglist Argument list for command.
-# body Implementation of command to handle indexing.
+# name Name of command recognized in Tcl files.
+# arglist Argument list for command.
+# body Implementation of command to handle indexing.
proc auto_mkindex_parser::commandInit {name arglist body} {
variable parser
@@ -500,15 +504,15 @@ proc auto_mkindex_parser::commandInit {name arglist body} {
set exportCmd [list _%@namespace export [namespace tail $name]]
$parser eval [list _%@namespace eval $ns $exportCmd]
- # The following proc definition does not work if you want to tolerate
- # space or something else diabolical in the procedure name, (i.e.,
- # space in $alias). The following does not work:
- # "_%@eval {$alias} \$args"
- # because $alias gets concat'ed to $args. The following does not work
- # because $cmd is somehow undefined
- # "set cmd {$alias} \; _%@eval {\$cmd} \$args"
- # A gold star to someone that can make test autoMkindex-3.3 work
- # properly
+ # The following proc definition does not work if you want to tolerate
+ # space or something else diabolical in the procedure name, (i.e.,
+ # space in $alias). The following does not work:
+ # "_%@eval {$alias} \$args"
+ # because $alias gets concat'ed to $args. The following does not work
+ # because $cmd is somehow undefined
+ # "set cmd {$alias} \; _%@eval {\$cmd} \$args"
+ # A gold star to someone that can make test autoMkindex-3.3 work
+ # properly
set alias [namespace tail $fakeName]
$parser invokehidden proc $name {args} "_%@eval {$alias} \$args"
@@ -530,7 +534,7 @@ proc auto_mkindex_parser::commandInit {name arglist body} {
# simple name. That way, the Tcl autoloader will recognize it properly.
#
# Arguments:
-# name - Name that is being added to index.
+# name - Name that is being added to index.
proc auto_mkindex_parser::fullname {name} {
variable contextStack
@@ -562,7 +566,7 @@ proc auto_mkindex_parser::fullname {name} {
# *right*, in one place.
#
# Arguments:
-# name - Name that is being added to index.
+# name - Name that is being added to index.
proc auto_mkindex_parser::indexEntry {name} {
variable index
@@ -576,8 +580,8 @@ proc auto_mkindex_parser::indexEntry {name} {
set filenameParts [file split $scriptFile]
append index [format \
- {set auto_index(%s) [list source [file join $dir %s]]%s} \
- $name $filenameParts \n]
+ {set auto_index(%s) [list source [file join $dir %s]]%s} \
+ $name $filenameParts \n]
return
}
@@ -605,22 +609,22 @@ auto_mkindex_parser::command proc {name args} {
auto_mkindex_parser::hook {
try {
- package require tbcload
+ package require tbcload
} on error {} {
- # OK, don't have it so do nothing
+ # OK, don't have it so do nothing
} on ok {} {
- if {[namespace which -command tbcload::bcproc] eq ""} {
- auto_load tbcload::bcproc
- }
- load {} tbcload $auto_mkindex_parser::parser
-
- # AUTO MKINDEX: tbcload::bcproc name arglist body
- # Adds an entry to the auto index list for the given pre-compiled
- # procedure name.
-
- auto_mkindex_parser::commandInit tbcload::bcproc {name args} {
- indexEntry $name
- }
+ if {[namespace which -command tbcload::bcproc] eq ""} {
+ auto_load tbcload::bcproc
+ }
+ load {} tbcload $auto_mkindex_parser::parser
+
+ # AUTO MKINDEX: tbcload::bcproc name arglist body
+ # Adds an entry to the auto index list for the given pre-compiled
+ # procedure name.
+
+ auto_mkindex_parser::commandInit tbcload::bcproc {name args} {
+ indexEntry $name
+ }
}
}
@@ -645,7 +649,7 @@ auto_mkindex_parser::command namespace {op args} {
set args [lrange $args 1 end]
set contextStack [linsert $contextStack 0 $name]
- $parser eval [list _%@namespace eval $name] $args
+ $parser eval [list _%@namespace eval $name] $args
set contextStack [lrange $contextStack 1 end]
}
import {
@@ -658,22 +662,22 @@ auto_mkindex_parser::command namespace {op args} {
}
catch {$parser eval "_%@namespace import $args"}
}
- ensemble {
- variable parser
- variable contextStack
- if {[lindex $args 0] eq "create"} {
- set name ::[join [lreverse $contextStack] ::]
- catch {
- set name [dict get [lrange $args 1 end] -command]
- if {![string match ::* $name]} {
- set name ::[join [lreverse $contextStack] ::]$name
- }
- regsub -all ::+ $name :: name
- }
- # create artifical proc to force an entry in the tclIndex
- $parser eval [list ::proc $name {} {}]
- }
- }
+ ensemble {
+ variable parser
+ variable contextStack
+ if {[lindex $args 0] eq "create"} {
+ set name ::[join [lreverse $contextStack] ::]
+ catch {
+ set name [dict get [lrange $args 1 end] -command]
+ if {![string match ::* $name]} {
+ set name ::[join [lreverse $contextStack] ::]$name
+ }
+ regsub -all ::+ $name :: name
+ }
+ # create artifical proc to force an entry in the tclIndex
+ $parser eval [list ::proc $name {} {}]
+ }
+ }
}
}
@@ -681,12 +685,12 @@ auto_mkindex_parser::command namespace {op args} {
# Adds an entry to the auto index list for the given class name.
auto_mkindex_parser::command oo::class {op name {body ""}} {
if {$op eq "create"} {
- indexEntry $name
+ indexEntry $name
}
}
auto_mkindex_parser::command class {op name {body ""}} {
if {$op eq "create"} {
- indexEntry $name
+ indexEntry $name
}
}