|
|
1.1 root 1: #
2: # edprocs.tcl --
3: #
4: # Tools for Tcl developers. Procedures to save procs to a file and to edit
5: # a proc in memory.
6: #------------------------------------------------------------------------------
7: # Copyright 1992 Karl Lehenbauer and Mark Diekhans.
8: #
9: # Permission to use, copy, modify, and distribute this software and its
10: # documentation for any purpose and without fee is hereby granted, provided
11: # that the above copyright notice appear in all copies. Karl Lehenbauer and
12: # Mark Diekhans make no representations about the suitability of this
13: # software for any purpose. It is provided "as is" without express or
14: # implied warranty.
15: #------------------------------------------------------------------------------
16: # $Id: edprocs.tcl,v 2.0 1992/10/16 04:51:57 markd Rel $
17: #------------------------------------------------------------------------------
18: #
19:
20: #@package: TclX-developer_utils saveprocs edprocs
21:
22: proc saveprocs {fileName args} {
23: set fp [open $fileName w]
24: puts $fp "# tcl procs saved on [fmtclock [getclock]]\n"
25: puts $fp [eval "showprocs $args"]
26: close $fp
27: }
28:
29: proc edprocs {args} {
30: global env
31:
32: set tmpFilename /tmp/tcldev.[id process]
33:
34: set fp [open $tmpFilename w]
35: puts $fp "\n# TEMP EDIT BUFFER -- YOUR CHANGES ARE FOR THIS SESSION ONLY\n"
36: puts $fp [eval "showprocs $args"]
37: close $fp
38:
39: if [info exists env(EDITOR)] {
40: set editor $env(EDITOR)
41: } else {
42: set editor vi
43: }
44:
45: set startMtime [file mtime $tmpFilename]
46: system "$editor $tmpFilename"
47:
48: if {[file mtime $tmpFilename] != $startMtime} {
49: source $tmpFilename
50: echo "Procedures were reloaded."
51: } else {
52: echo "No changes were made."
53: }
54: unlink $tmpFilename
55: return
56: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.