Change Jim_EvalObjPrefix to accept arbitrary objects
[jimtcl.git] / make-index
blob37eda49420496784d840a31f6930412c880a8246
1 #!/usr/bin/env tclsh
2 # vim:se syn=tcl:
4 set filename [lindex $argv 0]
5 set f [open $filename]
7 while {[gets $f buf] >= 0} {
8         if {$buf eq "@INSERTINDEX@"} {
9                 break
10         }
11         puts $buf
14 # Collect lines and commands
15 set lines {}
16 set commands {}
17 set c 0
19 while {[gets $f buf] >= 0} {
20         if {[string match "~~*" $buf]} {
21                 if {[string match "*:*" $prev]} {
22                         incr c
23                         set target cmd_$c
24                         set lines [linsert $lines end-1 "\[\[$target\]\]"]
25                 } else {
26                         set target _$prev
27                 }
28                 foreach cmd [split $prev ":,"] {
29                         set cmd [string trim $cmd]
30                         if {$cmd ne ""} {
31                                 lappend commands [list $cmd $target]
32                         }
33                 }
34         }
35         lappend lines $buf
36         set prev $buf
38 close $f
40 # Output the index
41 puts {[frame="none",grid="none"]}
42 puts {|=========================}
43 set i 0
44 foreach command [lsort $commands] {
45         foreach {cmd target} $command break
47         puts -nonewline "|<<$target,$cmd>> "
48         incr i
49         if {$i % 8 == 0} {
50                 puts ""
51         }
53 while {$i % 8 != 0} {
54         incr i
55         puts -nonewline "| "
57 puts ""
58 puts {|=========================}
60 puts [join $lines \n]