diff options
Diffstat (limited to 'tcl8.6/library/parray.tcl')
-rw-r--r-- | tcl8.6/library/parray.tcl | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/tcl8.6/library/parray.tcl b/tcl8.6/library/parray.tcl new file mode 100644 index 0000000..a9c2cb1 --- /dev/null +++ b/tcl8.6/library/parray.tcl @@ -0,0 +1,28 @@ +# parray: +# Print the contents of a global array on stdout. +# +# Copyright (c) 1991-1993 The Regents of the University of California. +# Copyright (c) 1994 Sun Microsystems, Inc. +# +# See the file "license.terms" for information on usage and redistribution +# of this file, and for a DISCLAIMER OF ALL WARRANTIES. +# + +proc parray {a {pattern *}} { + upvar 1 $a array + if {![array exists array]} { + return -code error "\"$a\" isn't an array" + } + set maxl 0 + set names [lsort [array names array $pattern]] + foreach name $names { + if {[string length $name] > $maxl} { + set maxl [string length $name] + } + } + set maxl [expr {$maxl + [string length $a] + 2}] + foreach name $names { + set nameString [format %s(%s) $a $name] + puts stdout [format "%-*s = %s" $maxl $nameString $array($name)] + } +} |