|
|
1.1 root 1: #
2: # pushd.tcl --
3: #
4: # C-shell style directory stack procs.
5: #
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: pushd.tcl,v 2.0 1992/10/16 04:52:06 markd Rel $
17: #------------------------------------------------------------------------------
18: #
19:
20: #@package: TclX-directory_stack pushd popd dirs
21:
22: global TCLENV(dirPushList)
23:
24: set TCLENV(dirPushList) ""
25:
26: proc pushd {args} {
27: global TCLENV
28:
29: if {[llength $args] > 1} {
30: error "bad # args: pushd [dir_to_cd_to]"
31: }
32: set TCLENV(dirPushList) [linsert $TCLENV(dirPushList) 0 [pwd]]
33:
34: if {[llength $args] != 0} {
35: cd [glob $args]
36: }
37: }
38:
39: proc popd {} {
40: global TCLENV
41:
42: if [llength $TCLENV(dirPushList)] {
43: cd [lvarpop TCLENV(dirPushList)]
44: pwd
45: } else {
46: error "directory stack empty"
47: }
48: }
49:
50: proc dirs {} {
51: global TCLENV
52: echo [pwd] $TCLENV(dirPushList)
53: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.