pushd revision 1.6
11.6Scgd#	$NetBSD: pushd,v 1.6 1995/03/21 09:11:04 cgd Exp $
21.6Scgd#
31.4Sjtc# Copyright (c) 1991, 1993
41.4Sjtc#	The Regents of the University of California.  All rights reserved.
51.1Scgd#
61.1Scgd# This code is derived from software contributed to Berkeley by
71.1Scgd# Kenneth Almquist.
81.1Scgd#
91.1Scgd# Redistribution and use in source and binary forms, with or without
101.1Scgd# modification, are permitted provided that the following conditions
111.1Scgd# are met:
121.1Scgd# 1. Redistributions of source code must retain the above copyright
131.1Scgd#    notice, this list of conditions and the following disclaimer.
141.1Scgd# 2. Redistributions in binary form must reproduce the above copyright
151.1Scgd#    notice, this list of conditions and the following disclaimer in the
161.1Scgd#    documentation and/or other materials provided with the distribution.
171.1Scgd# 3. All advertising materials mentioning features or use of this software
181.1Scgd#    must display the following acknowledgement:
191.1Scgd#	This product includes software developed by the University of
201.1Scgd#	California, Berkeley and its contributors.
211.1Scgd# 4. Neither the name of the University nor the names of its contributors
221.1Scgd#    may be used to endorse or promote products derived from this software
231.1Scgd#    without specific prior written permission.
241.1Scgd#
251.1Scgd# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
261.1Scgd# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
271.1Scgd# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
281.1Scgd# ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
291.1Scgd# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
301.1Scgd# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
311.1Scgd# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
321.1Scgd# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
331.1Scgd# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
341.1Scgd# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
351.1Scgd# SUCH DAMAGE.
361.1Scgd#
371.6Scgd#	@(#)pushd	8.1 (Berkeley) 5/31/93
381.1Scgd
391.1Scgd# pushd, popd, and dirs --- written by Chris Bertin
401.1Scgd# Pixel Computer Inc. ...!wjh12!pixel!pixutl!chris
411.1Scgd# as modified by Patrick Elam of GTRI and Kenneth Almquist at UW
421.1Scgd
431.1Scgdpushd () {
441.1Scgd	SAVE=`pwd`
451.1Scgd	if [ "$1" = "" ] 
461.1Scgd	then	if [ "$DSTACK" = "" ]
471.1Scgd		then	echo "pushd: directory stack empty."
481.1Scgd			return 1
491.1Scgd		fi
501.1Scgd		set $DSTACK
511.1Scgd		cd $1 || return
521.1Scgd		shift 1
531.1Scgd		DSTACK="$*"
541.1Scgd	else	cd $1 > /dev/null || return
551.1Scgd	fi
561.1Scgd	DSTACK="$SAVE $DSTACK"
571.1Scgd	dirs
581.1Scgd}
591.1Scgd
601.1Scgdpopd () {
611.1Scgd	if [ "$DSTACK" = "" ] 
621.1Scgd	then	echo "popd: directory stack empty."
631.1Scgd		return 1
641.1Scgd	fi
651.1Scgd	set $DSTACK
661.1Scgd	cd $1
671.1Scgd	shift
681.1Scgd	DSTACK=$*
691.1Scgd	dirs
701.1Scgd}
711.1Scgd
721.1Scgddirs () {
731.1Scgd	echo "`pwd` $DSTACK"
741.1Scgd	return 0
751.1Scgd}
76