4.4BSD/usr/src/contrib/news/trn3/filexp

#!/bin/sh
: expand filename
case "$1" in
 ~/*|~)
	echo $1 | /usr/bin/sed "s|~|${HOME-$LOGDIR}|"
	;;
 ~*)
	if /bin/test -f /bin/csh; then
		/bin/csh -f -c "glob $1"
		failed=0
		echo ""
		exit $failed
	else
		name=`/bin/expr x$1 : '..\([^/]*\)'`
		dir=`/usr/bin/sed -n -e "/^${name}:/{s/^[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:\([^:]*\).*"'$'"/\1/" -e p -e q -e '}' </etc/passwd`
		if /bin/test ! -d "$dir"; then
			me=`basename $0`
			echo "$me: can't locate home directory for: $name" >&2
			exit 1
		fi
		case "$1" in
		*/*)
			echo $dir/`/bin/expr x$1 : '..[^/]*/\(.*\)'`
			;;
		*)
			echo $dir
			;;
		esac
	fi
	;;
*)
	echo $1
	;;
esac