2 # Pretty print the contents of a keyed list
4 # Copyright (c) 1996 Christian Werner
6 # See the file "license.terms" for information on usage and redistribution
7 # of this file, and for a DISCLAIMER OF ALL WARRANTIES.
10 # Internal function which recursively collects the keys in a keyed list.
11 # Don't remove the blank before "proc", it prevents "auto_mkindex" from
12 # creating an entry for this procedure.
14 proc keylpr__ {list keynames prefix} {
15 upvar 1 $keynames names
17 set m [keylkeys l $prefix]
18 set x [string length $prefix]
25 if ![keylpr__ l names $p] {
32 # Keyed list pretty printer, returns string with pretty printed keyed
35 # keylname name of keyed list variable to be formatted
36 # prefix (opt) component of keyed list to be formatted or empty
37 # to format entire keyed list
39 proc keylpr {keylname {prefix {}}} {
40 upvar 1 $keylname keylist
42 keylpr__ keylist keys $prefix
44 set keys [lsort -ascii $keys]
46 set l [string length $k]
47 if {$l > $maxlength} {
51 set fmt "%-${maxlength}s %s"
55 if ![catch {format $fmt $k [keylget keylist $k]} l] {