function tr
# limited tr for dsh
{
	case $1 in
		-s)	sq=y; shift;;
		-*)	echo 'dsh tr only recognizes -s option **' >&2
			return 4;;
		esac
	case $1 in
		\[a-z])	set -- abcdefghijklmnopqrstuvwxyz "$2";;
		\[A-Z])	set -- ABCDEFGHIJKLMNOPQRSTUVWXYZ "$2";;
		*\\*)	set -- `echo "$1"` "$2";;
		esac
	case $2 in
		\[a-z])	set -- "$1" abcdefghijklmnopqrstuvwxyz ;;
		\[A-Z])	set -- "$1" ABCDEFGHIJKLMNOPQRSTUVWXYZ ;;
		*\\012*) set -- "$1" "`echo \"${2%%\\012*}\\004${2##*\\012}\"`";;
		*\\*)	set -- "$1" `echo "$2"`;;
		esac
	case $sq in
		y)	sq="${2%${2#?}}"
			sq="s/$sq$sq*/$sq/g";;
		esac
	sed "y/$1/$2/
		s:`echo \\004`:\\
:g
		$sq"
}

function xargs
# limited xargs for dsh
{
	case $1 in
		-i)	shift
			cmd=`echo "$*" | sed 's/{}/\$a/g'`
			while read a
				do eval $cmd
				done;;
		*)	echo 'dsh xargs only recognizes -i option **' >&2
			return 4;;
		esac
}

alias -x exe2bin='echo exe2bin requires development package' \
	EXE2BIN='echo exe2bin requires development package'
typeset -xf tr xargs
