function yorn {
	[ "${FDBG-}" ] && set -A fDbG $FDBG && [ $fDbG = set ] && eval $fDbG ${fDbG[1]}
	typeset yorno ans
	[ "${1#-u}" != "${1-}" ] && yorno="${1-}" && shift
	ans=""
	while [ ! "${ans-}" ]; do
		print -u2 ${yorno-} -n "${1-} y/n: "
		read ans
		[ -z "${ans-}" -a "${2-}" ] && ans="${2-}"
		case "${ans-}" in
		-x|-v)	set ${1-}; ans="" ;;
		q*|Q*)	exit 2 ;;
		y*|Y*)	return 0 ;;
		n*|N*)	return 1 ;;
		*)	ans="" ;;
		esac
	done
}