|
|
1.1 root 1: # auto_mkindex:
2: # Given a directory and a glob-style specification for files in that
3: # directory, generate a "tclIndex" file in the directory that is suitable
4: # for use in auto-loading. Returns a null string.
5: #
6: # $Header: /user6/ouster/tcl/scripts/RCS/mkindex.tcl,v 1.2 91/12/16 08:29:25 ouster Exp $ SPRITE (Berkeley)
7: #
8: # Copyright 1991 Regents of the University of California
9: # Permission to use, copy, modify, and distribute this
10: # software and its documentation for any purpose and without
11: # fee is hereby granted, provided that this copyright
12: # notice appears in all copies. The University of California
13: # makes no representations about the suitability of this
14: # software for any purpose. It is provided "as is" without
15: # express or implied warranty.
16: #
17:
18: proc auto_mkindex {dir files} {
19: global errorCode errorInfo
20: set oldDir [pwd]
21: cd $dir
22: set dir [pwd]
23: append index "# Tcl autoload index file: each line identifies a Tcl\n"
24: append index "# procedure and the file where that procedure is\n"
25: append index "# defined. Generated by the \"auto_mkindex\" command.\n"
26: append index "\n"
27: foreach file [glob $files] {
28: set f ""
29: set error [catch {
30: set f [open $file]
31: while {[gets $f line] >= 0} {
32: if [regexp {^proc[ ]+([^ ]*)} $line match procName] {
33: append index "[list $procName $file]\n"
34: }
35: }
36: close $f
37: } msg]
38: if $error {
39: set code $errorCode
40: set info $errorInfo
41: catch [close $f]
42: cd $oldDir
43: error $msg $info $code
44: }
45: }
46: set f [open tclindex w]
47: puts $f $index nonewline
48: close $f
49: cd $oldDir
50: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.