xref: /original-bsd/bin/sh/funcs/pushd (revision 4092c5cc)
1# Copyright (c) 1991, 1993
2#	The Regents of the University of California.  All rights reserved.
3#
4# This code is derived from software contributed to Berkeley by
5# Kenneth Almquist.
6#
7# %sccs.include.redist.sh%
8#
9#	@(#)pushd	8.1 (Berkeley) 05/31/93
10
11# pushd, popd, and dirs --- written by Chris Bertin
12# Pixel Computer Inc. ...!wjh12!pixel!pixutl!chris
13# as modified by Patrick Elam of GTRI and Kenneth Almquist at UW
14
15pushd () {
16	SAVE=`pwd`
17	if [ "$1" = "" ]
18	then	if [ "$DSTACK" = "" ]
19		then	echo "pushd: directory stack empty."
20			return 1
21		fi
22		set $DSTACK
23		cd $1 || return
24		shift 1
25		DSTACK="$*"
26	else	cd $1 > /dev/null || return
27	fi
28	DSTACK="$SAVE $DSTACK"
29	dirs
30}
31
32popd () {
33	if [ "$DSTACK" = "" ]
34	then	echo "popd: directory stack empty."
35		return 1
36	fi
37	set $DSTACK
38	cd $1
39	shift
40	DSTACK=$*
41	dirs
42}
43
44dirs () {
45	echo "`pwd` $DSTACK"
46	return 0
47}
48