|
|
1.1 ! root 1: # ! 2: # convlib.tcl -- ! 3: # ! 4: # Convert Ousterhout style tclIndex files and associated libraries to a ! 5: # package library. ! 6: # ! 7: #------------------------------------------------------------------------------ ! 8: # Copyright 1992 Karl Lehenbauer and Mark Diekhans. ! 9: # ! 10: # Permission to use, copy, modify, and distribute this software and its ! 11: # documentation for any purpose and without fee is hereby granted, provided ! 12: # that the above copyright notice appear in all copies. Karl Lehenbauer and ! 13: # Mark Diekhans make no representations about the suitability of this ! 14: # software for any purpose. It is provided "as is" without express or ! 15: # implied warranty. ! 16: #------------------------------------------------------------------------------ ! 17: # $Id: convlib.tcl,v 2.0 1992/10/16 04:51:53 markd Rel $ ! 18: #------------------------------------------------------------------------------ ! 19: # ! 20: ! 21: #@package: TclX-convertlib convert_lib ! 22: ! 23: proc convert_lib {tclIndex packageLib {ignore {}}} { ! 24: if {[file tail $tclIndex] != "tclindex"} { ! 25: error "Tail file name numt be `tclindex': $tclIndex"} ! 26: set srcDir [file dirname $tclIndex] ! 27: ! 28: if {[file extension $packageLib] != ".tlib"} { ! 29: append packageLib ".tlib"} ! 30: ! 31: # Build an array addressed by file name containing all of the procs ! 32: # defined in that file. ! 33: ! 34: set tclIndexFH [open $tclIndex r] ! 35: while {[gets $tclIndexFH line] >= 0} { ! 36: if {([cindex $line 0] == "#") || ([llength $line] != 2)} { ! 37: continue} ! 38: if {[lsearch $ignore [lindex $line 1]] >= 0} { ! 39: continue} ! 40: lappend entryTable([lindex $line 1]) [lindex $line 0] ! 41: } ! 42: close $tclIndexFH ! 43: ! 44: set libFH [open $packageLib w] ! 45: foreach srcFile [array names entryTable] { ! 46: set srcFH [open $srcDir/$srcFile r] ! 47: puts $libFH "#@package: $srcFile $entryTable($srcFile)\n" ! 48: copyfile $srcFH $libFH ! 49: close $srcFH ! 50: } ! 51: close $libFH ! 52: buildpackageindex $packageLib ! 53: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.