aboutsummaryrefslogtreecommitdiff
path: root/tcl6.tcl
diff options
context:
space:
mode:
Diffstat (limited to 'tcl6.tcl')
-rw-r--r--tcl6.tcl20
1 files changed, 13 insertions, 7 deletions
diff --git a/tcl6.tcl b/tcl6.tcl
index 633ddc3..38d2ed7 100644
--- a/tcl6.tcl
+++ b/tcl6.tcl
@@ -20,6 +20,12 @@ proc lsearch {list value} {
return -1
}
+# Tcl 8.5 lassign
+proc lassign {list args} {
+ uplevel 1 [list foreach $args [concat $list {}] break]
+ lrange $list [llength $args] end
+}
+
# Internal function to match a value agains a list of patterns
proc _case_search_patterns {patterns value} {
set i 0
@@ -70,19 +76,19 @@ proc case {var args} {
# Optional argument is a glob pattern
proc parray {arrayname {pattern *}} {
- upvar $arrayname a
+ upvar $arrayname a
set max 0
- foreach name [array names a $pattern]] {
+ foreach name [array names a $pattern]] {
if {[string length $name] > $max} {
set max [string length $name]
}
- }
- incr max [string length $arrayname]
- incr max 2
- foreach name [lsort [array names a $pattern]] {
+ }
+ incr max [string length $arrayname]
+ incr max 2
+ foreach name [lsort [array names a $pattern]] {
puts [format "%-${max}s = %s" $arrayname\($name\) $a($name)]
- }
+ }
}
# Sort of replacement for $::errorInfo