# @(#) ArcWindow 2.1.1	Magpie Archive Window Support
#
#	Author: Steve Manes
#	Edited by: John Cowan
#		Added wildcard support
#		Added 'shar' archives (compressed or not)
#		Allowed single-character commands via new 'accept' program
#		Fixed up various minor nits
#		Added support for automatic arch detection via magic comments
#		Added cpio archives
#		Added logic for re-archiving stuff before download
#	Version 2.1:
#		Added directories as an archive type
#		Added plain-vanilla file support
#		Added recursive invocation
#	Version 2.1.1:
#		Various patches
#		Fixed wildcard support so it works!
#		Added wildcard support for tar, ar archives
#		Space now legal command
#		Compressed archives uncompressed once for all
#
#	Note:	This program MUST reside in the Magpie home directory.
#	Note:	'zcat' is a link to the standard 'compress' program.
#
#	arg:	ArcWindow filename
:

ARCH=$1
HOMEDIR=`pwd`
MYDIR=/tmp/ArcW$$
ZARCH=/tmp/ArcWZ$$
umask 000
trap 'cd $HOMEDIR; rm -rf $MYDIR $ZARCH' 0 1 2 3 15

# 'PATH' *MUST* include the path to your 'send' file xfer utility
PATH=$PATH:/u/bin

# set these up for your system environment
#
ACCEPT=/u/bin/accept
AR=/bin/ar
ARC=/u/bin/arc
ARCW=ArcWindow
COMPRESS=/u/bin/compress
CPIO=/bin/cpio
LS="/bin/ls -oglF"
MORE="/usr/bin/more -d"
SHAR=/u/bin/shar
TAR=/bin/tar
SED=/bin/sed
SEND=send
ZCAT=/u/bin/zcat
ZOO=/u/bin/zoo

# get archive type
if [ $# != 1 ]
    then
	echo "\nusage: $0 filename"
	echo "\tSupported file suffixes:"
	echo "\t.a .arc .ARC .cp .cpio .tar -tar .sh .shar .zoo .ZOO .Z\n"
	exit 1
fi
case $ARCH in
	*.zoo)	TYPE=ZOO		# ARCHIVE TYPE PATTERN
		;;
	*.ZOO)	TYPE=ZOO		# ARCHIVE TYPE PATTERN
		;;
	*.arc)	TYPE=ARC		# ARCHIVE TYPE PATTERN
		;;
	*.ARC)	TYPE=ARC		# ARCHIVE TYPE PATTERN
		;;
	*.tar.Z)			# ARCHIVE TYPE PATTERN
		TYPE=TAR.Z
		;;
	*.tar)	TYPE=TAR		# ARCHIVE TYPE PATTERN
		;;
	*-tar.Z)			# ARCHIVE TYPE PATTERN
		TYPE=TAR.Z
		;;
	*-tar)	TYPE=TAR		# ARCHIVE TYPE PATTERN
		;;
	*.a)	TYPE=AR			# ARCHIVE TYPE PATTERN
		;;
	*.sh)	TYPE=SHAR		# ARCHIVE TYPE PATTERN
		;;
	*.sh.Z) TYPE=SHAR.Z		# ARCHIVE TYPE PATTERN
		;;
	*.shr)	TYPE=SHAR		# ARCHIVE TYPE PATTERN
		;;
	*.shr.Z)			# ARCHIVE TYPE PATTERN
		TYPE=SHAR.Z
		;;
	*.shar) TYPE=SHAR		# ARCHIVE TYPE PATTERN
		;;
	*.shar.Z) TYPE=SHAR.Z		# ARCHIVE TYPE PATTERN
		;;
	*.cpio.Z)			# ARCHIVE TEST PATTERN
		TYPE=CPIO.Z
		;;
	*.cpio)	TYPE=CPIO		# ARCHIVE TYPE PATTERN
		;;
	*.cp.Z)	TYPE=CPIO.Z		# ARCHIVE TYPE PATTERN
		;;
	*.cp)	TYPE=CPIO		# ARCHIVE TYPE PATTERN
		;;
	# These two must be last!
	*.Z)	TYPE=COMPRESSED		# ARCHIVE TYPE PATTERN
		;;
	*)	if [ -d $ARCH ]
		then TYPE=DIRECTORY
		else TYPE=UNCOMPRESSED
		fi
		;;
esac
# END ARCHIVE TYPE PATTERNS

case $TYPE in
*.Z)	echo "\nUncompressing....this may take a while\n"
	$ZCAT $ARCH >$ZARCH
	;;
esac

while :
do

	if [ "$TYPE" = "DIRECTORY" ]
	    then
		OPTION="(O)pen     file as archive"
	    else
		OPTION="(D)ownload archive"
	fi
	echo "
---------------------
Magpie Archive Window
Arc type: $TYPE
---------------------
(L)ist     files
(T)ype     files
(X)tract   files
$OPTION

Command [RETURN to exit] > \c"

	ACTION=`$ACCEPT ltxdoq\ LTXDOQ`

	if [ "$ACTION" = "" -o "$ACTION" = "q" -o "$ACTION" = "Q" -o "$ACTION" = " " ]
	   then
		rm -f $ZARCH
		exit 0
	fi
	echo ""
#
# List archive files
#
	if [ "$ACTION" = "L" -o "$ACTION" = "l" ]
	   then
	   	case $TYPE in

		AR)	$AR tv $ARCH | $MORE
			;;
		ARC)	$ARC v $ARCH | $MORE
			;;
		ZOO)	$ZOO lc $ARCH | $MORE
			;;
		TAR)	$TAR tvf $ARCH | $MORE
			;;
		*COM*)	echo "\nNot a multifile archive"
			;;
		TAR.Z) tar tvf $ZARCH | $MORE
			;;
		SHAR)	echo "\nFiles contained in $ARCH:"
			$SED -n <$ARCH '/<</s/.*>\(.*\)$/\1/p' | $MORE
			;;
		SHAR.Z)	echo "Files contained in $ARCH:"
			cat $ZARCH | $SED -n '/<<[ ]*\\/s/.*>\(.*\)$/\1/p' |
					$MORE
			;;
		CPIO)	$CPIO -itv <$ARCH | $MORE
			;;
		CPIO.Z) $CPIO -itv <$ZARCH | $MORE
			;;
		DIR*)	echo "\n* marks executable, / marks subdirectory\n"
			$LS $ARCH | $MORE
			;;
		esac
		echo "\nHit any key...\c"
		YESNO=`$ACCEPT`
#
# Type internal archive files
#
	elif [ "$ACTION" = "t" -o "$ACTION" = "T" ]
	   then
		case $TYPE in
		*COM*)	;;
		*)	echo "\nFilename(s): \c"
			read NAMES
			if [ "$NAMES" = "" ]
			   then	continue
			elif [ "$NAMES" = "*" -a "$TYPE" = "ARC" ]
			    then NAMES="*.*"
			fi
			TARNAMES="$NAMES"
			case "$TARNAMES" in
			*[?*]*)	TARNAMES=""
				;;
			esac
			;;
		esac
		echo ""

		set -- "$NAMES"
		case $TYPE in

		AR)	$AR p $ARCH $TARNAMES | $MORE
			;;
		ARC)	$ARC p $ARCH "$@" | $MORE
			;;
		ZOO)	$ZOO ep $ARCH "$@" | $MORE
			;;
		COM*)	$ZCAT $ARCH | $MORE
			;;
		UNCOM*)	$MORE $ARCH
			;;
		TAR)	cat $ARCH | (	mkdir $MYDIR
					cd $MYDIR
					$TAR xAf - $TARNAMES
					cat $@ | $MORE
					cd $HOMEDIR
					rm -rf $MYDIR)
			;;
		TAR.Z)	cat $ZARCH | (	mkdir $MYDIR
					cd $MYDIR
					$TAR xAf - $TARNAMES
					cat $@ | $MORE
					cd $HOMEDIR
					rm -rf $MYDIR)
			;;
		SHAR)	echo "\nThis might take a while...\n"
			cat $ARCH | (	mkdir $MYDIR
					cd $MYDIR
					sh >/dev/null 2>&1
					cat $@ | $MORE
					cd $HOMEDIR
					rm -rf $MYDIR)
			;;
		SHAR.Z)	cat $ZARCH | (	mkdir $MYDIR
					cd $MYDIR
					sh >/dev/null 2>&1
					cat $@ | $MORE
					cd $HOMEDIR
					rm -rf $MYDIR)
			;;
		CPIO)	cat $ARCH | (	mkdir $MYDIR
					cd $MYDIR
					$CPIO -i "$@"
					cat $@ | $MORE
					cd $HOMEDIR
					rm -rf $MYDIR)
			;;
		CPIO.Z)	cat $ZARCH | (	mkdir $MYDIR
					cd $MYDIR
					$CPIO -i "$@"
					cat $@ | $MORE
					cd $HOMEDIR
					rm -rf $MYDIR)
			;;
		DIR*)	(cd $ARCH; $MORE $@)
			;;
		esac	
		echo "\nHit any key...\c"
		YESNO=`$ACCEPT`
#
# Download internal archive files
#
	elif [ "$ACTION" = "x" -o "$ACTION" = "X" ]
	   then
		case $TYPE in
		UNCOM*)	echo "\nEntire file will be sent\n"
			;;
		COM*)	echo "\nEntire file will be sent after uncompressing\n"
			;;
		*)	echo "\nFilename(s): \c"
			read NAMES
			if [ "$NAMES" = "" ]
			   then	continue
			fi
			;;
		esac

		# get download protocol
		echo "\nProtocol: (X)modem (Y)modem (B)atch Ymodem > \c"
		ANSWER=`$ACCEPT xybXYB`
		case $ANSWER in
			x|X)	PROTOCOL="-x"
				;;
			y|Y)	PROTOCOL="-y"
				;;
			b|B)	PROTOCOL="-yb"
				;;
			*)	echo "\nInvalid selection"
				continue
				;;
		esac

		NEWTYPE=""
		echo "Re-archive extracted files before download? \c"
		YESNO=`$ACCEPT ynYN`
		if [ "$YESNO" = "Y" -o "$YESNO" = "y" ]
		    then
			echo "Format:  (A)rc (T)ar.Z (Z)oo > \c"
			NEWTYPE=`$ACCEPT atzATZ`
		fi

		echo "\nOne moment..."
		# make archive path name absolute
		case $ARCH in
			/*)	;;
			*)	ARCH=`pwd`/$ARCH
				;;
		esac

		mkdir $MYDIR
		cd $MYDIR

		set -- "$NAMES"
		case $TYPE in
	
		AR)	$AR xv $ARCH $TARNAMES
			;;
		ARC)	$ARC xn $ARCH "$@"
			set -- *		# ARC destroys case info!
			;;
		ZOO)	$ZOO xq $ARCH "$@"
			;;
		COM*)	cat $ZARCH >ArcW$$
			set -- ArcW$$
			;;
		UNCOM*)	set -- $ARCH
			;;
		TAR)	$TAR xAf $ARCH $TARNAMES
			;;
		TAR.Z)	$TAR xAf $ZARCH $TARNAMES
			;;
		SHAR)	sh <$ARCH
			;;
		SHAR.Z)	sh <$ZARCH
			;;
		CPIO)	$CPIO -i <$ARCH "$@"
			;;
		CPIO.Z)	$CPIO -i <$ZARCH "$@"
			;;
		DIR*)	(cd $ARCH; cp $@ $MYDIR)
			;;
		esac

		case $NEWTYPE in
			A|a)	$ARC an ArcW$$.arc $@
				set -- ArcW$$.arc
				;;
			T|t)	$TAR cf ArcW$$.tar $@
				$COMPRESS ArcW$$.tar
				set -- ArcW$$.tar.Z
				;;
			Z|z)	$ZOO aq ArcW$$.zoo $@
				set -- ArcW$$.zoo
				;;
		esac

		echo "\nDownload [y/n]? \c"
		YESNO=`$ACCEPT ynYN`
		if [ "$YESNO" = "y" -o "$YESNO" = "Y" ]
		   then $SEND $PROTOCOL $@
		fi
				
		cd $HOMEDIR
		rm -rf $MYDIR
#
# Download entire file
#
	elif [ "$ACTION" = "d" -o "$ACTION" = "D" ]
	   then	
		if [ "$TYPE" = "DIRECTORY" ]
		    then
			echo "\nCannot download whole directories\n"
			continue
		fi
		# get download protocol
		echo "\nProtocol: (X)modem (Y)modem (B)atch Ymodem > \c"
		ANSWER=`$ACCEPT xybXYB`
		case $ANSWER in
			x|X)	PROTOCOL="-x"
				;;
			y|Y)	PROTOCOL="-y"
				;;
			b|B)	PROTOCOL="-yb"
				;;
			*)	echo "\nInvalid selection"
				continue
				;;
		esac

		echo "\nDownload [y/n]? \c"
		YESNO=`$ACCEPT ynYN`
		if [ "$YESNO" = "y" -o "$YESNO" = "Y" ]
		   then	$SEND $PROTOCOL $ARCH
		fi
	elif [ "$ACTION" = "o" -o "$ACTION" = "O" ]
	    then
		if [ "$TYPE" != "DIRECTORY" ]
		    then
			echo "\nOnly DIRECTORY archives can be opened\n"
			continue
		fi
		echo "\nFilename: \c"
		read NAME
		if [ "$NAME" = "" ]
		    then continue
		fi
		case $NAME in
		.*)	echo "\nIllegal file name\n"
			continue
			;;
		esac
		echo ""
		$ARCW $ARCH/$NAME
		echo "\nReturned to ArcWindow for: $ARCH\n"
	fi
done
# @(#) ArcWindow 2.1.1	Magpie Archive Window Support
#
#	Author: Steve Manes
#	Edited by: John Cowan
#		Added wildcard support
#		Added 'shar' archives (compressed or not)
#		Allowed single-character commands via new 'accept' program
#		Fixed up various minor nits
#		Added support for automatic arch detection via magic comments
#		Added cpio archives
#		Added logic for re-archiving stuff before download
#	Version 2.1:
#		Added directories as an archive type
#		Added plain-vanilla file support
#		Added recursive invocation
#	Version 2.1.1:
#		Various patches
#		Fixed wildcard support so it works!
#		Added wildcard support for tar, ar archives
#		Space now legal command
#
#	Note:	This program MUST reside in the Magpie home directory.
#	Note:	'zcat' is a link to the standard 'compress' program.
#
#	arg:	ArcWindow filename
:

ARCH=$1
HOMEDIR=`pwd`
MYDIR=/tmp/ArcW$$
umask 000

# 'PATH' *MUST* include the path to your 'send' file xfer utility
PATH=$PATH:/u/bin

# set these up for your system environment
#
ACCEPT=/u/bin/accept
AR=/bin/ar
ARC=/u/bin/arc
ARCW=ArcWindow
COMPRESS=/u/bin/compress
CPIO=/bin/cpio
LS="/bin/ls -oglF"
MORE="/usr/bin/more -d"
SHAR=/u/bin/shar
TAR=/bin/tar
SED=/bin/sed
SEND=send
ZCAT=/u/bin/zcat
ZOO=/u/bin/zoo

# get archive type
if [ $# != 1 ]
    then
	echo "\nusage: $0 filename"
	echo "\tSupported file suffixes:"
	echo "\t.a .arc .ARC .cp .cpio .tar -tar .sh .shar .zoo .ZOO .Z\n"
	exit 1
fi
case $ARCH in
	*.zoo)	TYPE=ZOO		# ARCHIVE TYPE PATTERN
		;;
	*.ZOO)	TYPE=ZOO		# ARCHIVE TYPE PATTERN
		;;
	*.arc)	TYPE=ARC		# ARCHIVE TYPE PATTERN
		;;
	*.ARC)	TYPE=ARC		# ARCHIVE TYPE PATTERN
		;;
	*.tar.Z)			# ARCHIVE TYPE PATTERN
		TYPE=TAR.Z
		;;
	*.tar)	TYPE=TAR		# ARCHIVE TYPE PATTERN
		;;
	*-tar.Z)			# ARCHIVE TYPE PATTERN
		TYPE=TAR.Z
		;;
	*-tar)	TYPE=TAR		# ARCHIVE TYPE PATTERN
		;;
	*.a)	TYPE=AR			# ARCHIVE TYPE PATTERN
		;;
	*.sh)	TYPE=SHAR		# ARCHIVE TYPE PATTERN
		;;
	*.sh.Z) TYPE=SHAR.Z		# ARCHIVE TYPE PATTERN
		;;
	*.shr)	TYPE=SHAR		# ARCHIVE TYPE PATTERN
		;;
	*.shr.Z)			# ARCHIVE TYPE PATTERN
		TYPE=SHAR.Z
		;;
	*.shar) TYPE=SHAR		# ARCHIVE TYPE PATTERN
		;;
	*.shar.Z) TYPE=SHAR.Z		# ARCHIVE TYPE PATTERN
		;;
	*.cpio.Z)			# ARCHIVE TEST PATTERN
		TYPE=CPIO.Z
		;;
	*.cpio)	TYPE=CPIO		# ARCHIVE TYPE PATTERN
		;;
	*.cp.Z)	TYPE=CPIO.Z		# ARCHIVE TYPE PATTERN
		;;
	*.cp)	TYPE=CPIO		# ARCHIVE TYPE PATTERN
		;;
	# These two must be last!
	*.Z)	TYPE=COMPRESSED		# ARCHIVE TYPE PATTERN
		;;
	*)	if [ -d $ARCH ]
		then TYPE=DIRECTORY
		else TYPE=UNCOMPRESSED
		fi
		;;
esac
# END ARCHIVE TYPE PATTERNS

while :
do

	if [ "$TYPE" = "DIRECTORY" ]
	    then
		OPTION="(O)pen     file as archive"
	    else
		OPTION="(D)ownload archive"
	fi
	echo "
---------------------
Magpie Archive Window
Arc type: $TYPE
---------------------
(L)ist     files
(T)ype     files
(X)tract   files
$OPTION

Command [RETURN to exit] > \c"

	ACTION=`$ACCEPT ltxdoq\ LTXDOQ`

	if [ "$ACTION" = "" -o "$ACTION" = "q" -o "$ACTION" = "Q" -o "$ACTION" = " " ]
	   then
		exit 0
	fi
	echo ""
#
# List archive files
#
	if [ "$ACTION" = "L" -o "$ACTION" = "l" ]
	   then
	   	case $TYPE in

		AR)	$AR tv $ARCH | $MORE
			;;
		ARC)	$ARC v $ARCH | $MORE
			;;
		ZOO)	$ZOO lc $ARCH | $MORE
			;;
		TAR)	$TAR tvf $ARCH | $MORE
			;;
		*COM*)	echo "\nNot a multifile archive"
			;;
		TAR.Z)	echo "\nThis might take a while... uncompressing\n"
			$ZCAT $ARCH | tar tvf - | $MORE
			;;
		SHAR)	echo "\nFiles contained in $ARCH:"
			$SED -n <$ARCH '/<</s/.*>\(.*\)$/\1/p' | $MORE
			;;
		SHAR.Z)	echo "\nThis might take a while... uncompressing\n"
			echo "Files contained in $ARCH:"
			$ZCAT $ARCH | $SED -n '/<<[ ]*\\/s/.*>\(.*\)$/\1/p' |
					$MORE
			;;
		CPIO)	$CPIO -itv <$ARCH | $MORE
			;;
		CPIO.Z)	$ZCAT $ARCH | $CPIO -itv | $MORE
			;;
		DIR*)	echo "\n* marks executable, / marks subdirectory\n"
			$LS $ARCH | $MORE
			;;
		esac
		echo "\nHit any key...\c"
		YESNO=`$ACCEPT`
#
# Type internal archive files
#
	elif [ "$ACTION" = "t" -o "$ACTION" = "T" ]
	   then
		case $TYPE in
		*COM*)	;;
		*)	echo "\nFilename(s): \c"
			read NAMES
			if [ "$NAMES" = "" ]
			   then	continue
			elif [ "$NAMES" = "*" -a "$TYPE" = "ARC" ]
			    then NAMES="*.*"
			fi
			TARNAMES="$NAMES"
			case "$TARNAMES" in
			*[?*]*)	TARNAMES=""
				;;
			esac
			;;
		esac
		echo ""

		set -- "$NAMES"
		case $TYPE in

		AR)	$AR p $ARCH $TARNAMES | $MORE
			;;
		ARC)	$ARC p $ARCH "$@" | $MORE
			;;
		ZOO)	$ZOO ep $ARCH "$@" | $MORE
			;;
		COM*)	$ZCAT $ARCH | $MORE
			;;
		UNCOM*)	$MORE $ARCH
			;;
		TAR)	cat $ARCH | (	mkdir $MYDIR
					cd $MYDIR
					$TAR xAf - $TARNAMES
					cat $@ | $MORE
					cd $HOMEDIR
					rm -rf $MYDIR)
			;;
		TAR.Z)	echo "\nThis might take a while... uncompressing\n"
			$ZCAT $ARCH | (	mkdir $MYDIR
					cd $MYDIR
					$TAR xAf - $TARNAMES
					cat $@ | $MORE
					cd $HOMEDIR
					rm -rf $MYDIR)
			;;
		SHAR)	echo "\nThis might take a while...\n"
			cat $ARCH | (	mkdir $MYDIR
					cd $MYDIR
					sh >/dev/null 2>&1
					cat $@ | $MORE
					cd $HOMEDIR
					rm -rf $MYDIR)
			;;
		SHAR.Z)	echo "\nThis might take a while...\n"
			$ZCAT $ARCH | (	mkdir $MYDIR
					cd $MYDIR
					sh >/dev/null 2>&1
					cat $@ | $MORE
					cd $HOMEDIR
					rm -rf $MYDIR)
			;;
		CPIO)	cat $ARCH | (	mkdir $MYDIR
					cd $MYDIR
					$CPIO -i "$@"
					cat $@ | $MORE
					cd $HOMEDIR
					rm -rf $MYDIR)
			;;
		CPIO.Z)	echo "\nThis might take a while... uncompressing\n"
			$ZCAT $ARCH | (	mkdir $MYDIR
					cd $MYDIR
					$CPIO -i "$@"
					cat $@ | $MORE
					cd $HOMEDIR
					rm -rf $MYDIR)
			;;
		DIR*)	(cd $ARCH; $MORE $@)
			;;
		esac	
		echo "\nHit any key...\c"
		YESNO=`$ACCEPT`
#
# Download internal archive files
#
	elif [ "$ACTION" = "x" -o "$ACTION" = "X" ]
	   then
		case $TYPE in
		UNCOM*)	echo "\nEntire file will be sent\n"
			;;
		COM*)	echo "\nEntire file will be sent after uncompressing\n"
			;;
		*)	echo "\nFilename(s): \c"
			read NAMES
			if [ "$NAMES" = "" ]
			   then	continue
			fi
			;;
		esac

		# get download protocol
		echo "\nProtocol: (X)modem (Y)modem (B)atch Ymodem > \c"
		ANSWER=`$ACCEPT xybXYB`
		case $ANSWER in
			x|X)	PROTOCOL="-x"
				;;
			y|Y)	PROTOCOL="-y"
				;;
			b|B)	PROTOCOL="-yb"
				;;
			*)	echo "\nInvalid selection"
				continue
				;;
		esac

		NEWTYPE=""
		echo "Re-archive extracted files before download? \c"
		YESNO=`$ACCEPT ynYN`
		if [ "$YESNO" = "Y" -o "$YESNO" = "y" ]
		    then
			echo "Format:  (A)rc (T)ar.Z (Z)oo > \c"
			NEWTYPE=`$ACCEPT atzATZ`
		fi

		echo "\nOne moment..."
		# make archive path name absolute
		case $ARCH in
			/*)	;;
			*)	ARCH=`pwd`/$ARCH
				;;
		esac

		mkdir $MYDIR
		cd $MYDIR

		set -- "$NAMES"
		case $TYPE in
	
		AR)	$AR xv $ARCH $TARNAMES
			;;
		ARC)	$ARC xn $ARCH "$@"
			set -- *		# ARC destroys case info!
			;;
		ZOO)	$ZOO xq $ARCH "$@"
			;;
		COM*)	$ZCAT $ARCH >ArcW$$
			set -- ArcW$$
			;;
		UNCOM*)	set -- $ARCH
			;;
		TAR)	$TAR xAf $ARCH $TARNAMES
			;;
		TAR.Z)	$ZCAT $ARCH | $TAR xAf - $TARNAMES
			;;
		SHAR)	sh <$ARCH
			;;
		SHAR.Z)	$ZCAT $ARCH | sh
			;;
		CPIO)	$CPIO -i <$ARCH "$@"
			;;
		CPIO.Z)	$ZCAT $ARCH | $CPIO -i "$@"
			;;
		DIR*)	(cd $ARCH; cp $@ $MYDIR)
			;;
		esac

		case $NEWTYPE in
			A|a)	$ARC an ArcW$$.arc $@
				set -- ArcW$$.arc
				;;
			T|t)	$TAR cf ArcW$$.tar $@
				$COMPRESS ArcW$$.tar
				set -- ArcW$$.tar.Z
				;;
			Z|z)	$ZOO aq ArcW$$.zoo $@
				set -- ArcW$$.zoo
				;;
		esac

		echo "\nDownload [y/n]? \c"
		YESNO=`$ACCEPT ynYN`
		if [ "$YESNO" = "y" -o "$YESNO" = "Y" ]
		   then $SEND $PROTOCOL $@
		fi
				
		cd $HOMEDIR
		rm -rf $MYDIR
#
# Download entire file
#
	elif [ "$ACTION" = "d" -o "$ACTION" = "D" ]
	   then	
		if [ "$TYPE" = "DIRECTORY" ]
		    then
			echo "\nCannot download whole directories\n"
			continue
		fi
		# get download protocol
		echo "\nProtocol: (X)modem (Y)modem (B)atch Ymodem > \c"
		ANSWER=`$ACCEPT xybXYB`
		case $ANSWER in
			x|X)	PROTOCOL="-x"
				;;
			y|Y)	PROTOCOL="-y"
				;;
			b|B)	PROTOCOL="-yb"
				;;
			*)	echo "\nInvalid selection"
				continue
				;;
		esac

		echo "\nDownload [y/n]? \c"
		YESNO=`$ACCEPT ynYN`
		if [ "$YESNO" = "y" -o "$YESNO" = "Y" ]
		   then	$SEND $PROTOCOL $ARCH
		fi
	elif [ "$ACTION" = "o" -o "$ACTION" = "O" ]
	    then
		if [ "$TYPE" != "DIRECTORY" ]
		    then
			echo "\nOnly DIRECTORY archives can be opened\n"
			continue
		fi
		echo "\nFilename: \c"
		read NAME
		if [ "$NAME" = "" ]
		    then continue
		fi
		case $NAME in
		.*)	echo "\nIllegal file name\n"
			continue
			;;
		esac
		echo ""
		$ARCW $ARCH/$NAME
		echo "\nReturned to ArcWindow for: $ARCH\n"
	fi
done
