Annotation of micropolis/src/tclx/tclsrc/edprocs.tcl, revision 1.1.1.1

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: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.