#!/bin/sh

# (attempt to) ring the terminal bell
# by outputting a single ASCII BEL character, no more, no less

#how do we do backslash escape sequences?
echo_e=
x=`echo '\056'`
if [ X. != X"$x" ]; then
	x=`2>>/dev/null echo -e '\056'`
	if [ X. = X"$x" ]; then
		echo_e=-e
	else
		1>&2 echo "$0: don't know how to do backslash escape sequences with echo"
		exit 1
	fi
fi

#how do we do supression of newline
echo_c=
echo_n=
echo $echo_e '' | read x || {
	1>&2 echo "$0: echo $echo_e '' | read x fails!"
	exit 1
}
echo $echo_e '\c' | read x
if [ $? -ne 0 ]; then
	echo_c='\c'
else
	2>>/dev/null echo $echo_e -n '' | read x
	if [ $? -ne 0 ]; then
		echo_n=-n
	else
		1>&2 echo "$0: don't know how to do supress newline with echo"
		exit 1
	fi
fi

#how do we generate ^G?
for echo_a in '\a' '\007' '' ''
do
	x=`echo $echo_e $echo_n "$echo_a$echo_c"`
	[ X"$x" = X'' ] && break
done
[ X"$echo_a" != X ] || {
	1>&2 echo "$0: don't know how to generate control-G (bell) with echo"
	exit 1
}

#and now that we've gotten all that out of the way:

#ring the bell, once
echo $echo_e $echo_n "$echo_a$echo_c"
