clean up code by emulating perl's 'die' command
diff --git a/test/test_bins.sh b/test/test_bins.sh
index b8ee522..f79c71c 100755
--- a/test/test_bins.sh
+++ b/test/test_bins.sh
@@ -17,13 +17,18 @@
 #  along with this program; if not, write to the Free Software
 #  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 
+die ()
+{
+	echo $* 1>&2
+	exit 1
+}
+
 LD_LIBRARY_PATH=../src/libFLAC/.libs:../obj/release/lib:../obj/debug/lib:$LD_LIBRARY_PATH
 export LD_LIBRARY_PATH
 PATH=../src/flac:../obj/release/bin:../obj/debug/bin:$PATH
 BINS_PATH=../../test_files/bins
 
-flac --help 1>/dev/null 2>/dev/null || (echo "ERROR can't find flac executable" 1>&2 && exit 1)
-if [ $? != 0 ] ; then exit 1 ; fi
+flac --help 1>/dev/null 2>/dev/null || die "ERROR can't find flac executable"
 
 run_flac ()
 {
@@ -47,26 +52,21 @@
 	cmd="run_flac --verify --silent --force-raw-format --endian=big --sign=signed --sample-rate=44100 --bps=$bps --channels=$channels $encode_options $name.bin"
 	echo "### ENCODE $name #######################################################" >> ./streams.log
 	echo "###    cmd=$cmd" >> ./streams.log
-	if $cmd 2>>./streams.log ; then : ; else
-		echo "ERROR during encode of $name" 1>&2
-		exit 1
-	fi
+	$cmd 2>>./streams.log || die "ERROR during encode of $name"
+
 	echo -n "decode..."
 	cmd="run_flac --silent --endian=big --sign=signed --decode --force-raw-format $name.flac";
 	echo "### DECODE $name #######################################################" >> ./streams.log
 	echo "###    cmd=$cmd" >> ./streams.log
-	if $cmd 2>>./streams.log ; then : ; else
-		echo "ERROR during decode of $name" 1>&2
-		exit 1
-	fi
+	$cmd 2>>./streams.log || die "ERROR during decode of $name"
+
 	ls -1l $name.bin >> ./streams.log
 	ls -1l $name.flac >> ./streams.log
 	ls -1l $name.raw >> ./streams.log
+
 	echo -n "compare..."
-	if cmp $name.bin $name.raw ; then : ; else
-		echo "ERROR during compare of $name" 1>&2
-		exit 1
-	fi
+	cmp $name.bin $name.raw || die "ERROR during compare of $name"
+
 	echo OK
 }
 
diff --git a/test/test_grabbag.sh b/test/test_grabbag.sh
index dae7828..63ef5c4 100755
--- a/test/test_grabbag.sh
+++ b/test/test_grabbag.sh
@@ -17,12 +17,17 @@
 #  along with this program; if not, write to the Free Software
 #  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 
+die ()
+{
+	echo $* 1>&2
+	exit 1
+}
+
 LD_LIBRARY_PATH=../src/libFLAC/.libs:../src/share/grabbag/.libs:../obj/release/lib:../obj/debug/lib:$LD_LIBRARY_PATH
 export LD_LIBRARY_PATH
 PATH=../src/test_grabbag/cuesheet:../obj/release/bin:../obj/debug/bin:$PATH
 
-test_cuesheet -h 1>/dev/null 2>/dev/null || (echo "ERROR can't find test_cuesheet executable" 1>&2 && exit 1)
-if [ $? != 0 ] ; then exit 1 ; fi
+test_cuesheet -h 1>/dev/null 2>/dev/null || die "ERROR can't find test_cuesheet executable"
 
 run_test_cuesheet ()
 {
@@ -55,8 +60,7 @@
 	run_test_cuesheet $cuesheet $good_leadout cdda >> $log 2>&1
 	exit_code=$?
 	if [ "$exit_code" = 255 ] ; then
-		echo "Error: test script is broken"
-		exit 1
+		die "Error: test script is broken"
 	fi
 	cuesheet_pass1=${cuesheet}.1
 	cuesheet_pass2=${cuesheet}.2
@@ -71,24 +75,14 @@
 	run_test_cuesheet $cuesheet $good_leadout cdda >> $log 2>&1
 	exit_code=$?
 	if [ "$exit_code" = 255 ] ; then
-		echo "Error: test script is broken"
-		exit 1
+		die "Error: test script is broken"
 	elif [ "$exit_code" != 0 ] ; then
-		echo "Error: good cuesheet is broken"
-		exit 1
+		die "Error: good cuesheet is broken"
 	fi
 	cuesheet_pass1=${cuesheet}.1
 	cuesheet_pass2=${cuesheet}.2
-	diff $cuesheet_pass1 $cuesheet_pass2 >> $log 2>&1
-	if [ $? != 0 ] ; then
-		echo "Error: pass1 and pass2 output differ"
-		exit 1
-	fi
+	diff $cuesheet_pass1 $cuesheet_pass2 >> $log 2>&1 || die "Error: pass1 and pass2 output differ"
 	rm -f $cuesheet_pass1 $cuesheet_pass2
 done
 
-diff cuesheet.ok $log > cuesheet.diff
-if [ $? != 0 ] ; then
-	echo "Error: .log file does not match .ok file, see cuesheet.diff"
-	exit 1
-fi
+diff cuesheet.ok $log > cuesheet.diff || die "Error: .log file does not match .ok file, see cuesheet.diff"
diff --git a/test/test_libFLAC++.sh b/test/test_libFLAC++.sh
index e9e39d8..db3857d 100755
--- a/test/test_libFLAC++.sh
+++ b/test/test_libFLAC++.sh
@@ -17,6 +17,12 @@
 #  along with this program; if not, write to the Free Software
 #  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 
+die ()
+{
+	echo $* 1>&2
+	exit 1
+}
+
 LD_LIBRARY_PATH=../src/libFLAC++/.libs:../src/libFLAC/.libs:../obj/release/lib:../obj/debug/lib:$LD_LIBRARY_PATH
 export LD_LIBRARY_PATH
 PATH=../src/test_libFLAC++:../obj/release/bin:../obj/debug/bin:$PATH
@@ -31,7 +37,4 @@
 	fi
 }
 
-if run_test_libFLACpp ; then : ; else
-	echo "ERROR during test_libFLAC++" 1>&2
-	exit 1
-fi
+run_test_libFLACpp || die "ERROR during test_libFLAC++"
diff --git a/test/test_libFLAC.sh b/test/test_libFLAC.sh
index 0c04894..5e7927e 100755
--- a/test/test_libFLAC.sh
+++ b/test/test_libFLAC.sh
@@ -17,6 +17,12 @@
 #  along with this program; if not, write to the Free Software
 #  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 
+die ()
+{
+	echo $* 1>&2
+	exit 1
+}
+
 LD_LIBRARY_PATH=../src/libFLAC/.libs:../obj/release/lib:../obj/debug/lib:$LD_LIBRARY_PATH
 export LD_LIBRARY_PATH
 PATH=../src/test_libFLAC:../obj/release/bin:../obj/debug/bin:$PATH
@@ -31,7 +37,4 @@
 	fi
 }
 
-if run_test_libFLAC ; then : ; else
-	echo "ERROR during test_libFLAC" 1>&2
-	exit 1
-fi
+run_test_libFLAC || die "ERROR during test_libFLAC"
diff --git a/test/test_libOggFLAC++.sh b/test/test_libOggFLAC++.sh
index 6c8234e..35ff5dc 100755
--- a/test/test_libOggFLAC++.sh
+++ b/test/test_libOggFLAC++.sh
@@ -17,6 +17,12 @@
 #  along with this program; if not, write to the Free Software
 #  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 
+die ()
+{
+	echo $* 1>&2
+	exit 1
+}
+
 LD_LIBRARY_PATH=../src/libOggFLAC++/.libs:../src/libOggFLAC/.libs:../src/libFLAC/.libs:../obj/release/lib:../obj/debug/lib:$LD_LIBRARY_PATH
 export LD_LIBRARY_PATH
 PATH=../src/test_libOggFLAC++:../obj/release/bin:../obj/debug/bin:$PATH
@@ -31,7 +37,4 @@
 	fi
 }
 
-if run_test_libOggFLACpp ; then : ; else
-	echo "ERROR during test_libOggFLAC++" 1>&2
-	exit 1
-fi
+run_test_libOggFLACpp || die "ERROR during test_libOggFLAC++"
diff --git a/test/test_libOggFLAC.sh b/test/test_libOggFLAC.sh
index 842297c..e767fab 100755
--- a/test/test_libOggFLAC.sh
+++ b/test/test_libOggFLAC.sh
@@ -17,6 +17,12 @@
 #  along with this program; if not, write to the Free Software
 #  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 
+die ()
+{
+	echo $* 1>&2
+	exit 1
+}
+
 LD_LIBRARY_PATH=../src/libOggFLAC/.libs../src/libFLAC/.libs:../obj/release/lib:../obj/debug/lib:$LD_LIBRARY_PATH
 export LD_LIBRARY_PATH
 PATH=../src/test_libOggFLAC:../obj/release/bin:../obj/debug/bin:$PATH
@@ -31,7 +37,4 @@
 	fi
 }
 
-if run_test_libOggFLAC ; then : ; else
-	echo "ERROR during test_libOggFLAC" 1>&2
-	exit 1
-fi
+run_test_libOggFLAC || die "ERROR during test_libOggFLAC"
diff --git a/test/test_metaflac.sh b/test/test_metaflac.sh
index 2072eba..64c2db2 100755
--- a/test/test_metaflac.sh
+++ b/test/test_metaflac.sh
@@ -17,17 +17,20 @@
 #  along with this program; if not, write to the Free Software
 #  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 
+die ()
+{
+	echo $* 1>&2
+	exit 1
+}
+
 LD_LIBRARY_PATH=../src/libFLAC/.libs:../obj/release/lib:../obj/debug/lib:$LD_LIBRARY_PATH
 export LD_LIBRARY_PATH
 PATH=../src/flac:../src/metaflac:../obj/release/bin:../obj/debug/bin:$PATH
 
 flacfile=metaflac.flac
 
-flac --help 1>/dev/null 2>/dev/null || (echo "ERROR can't find flac executable" 1>&2 && exit 1)
-if [ $? != 0 ] ; then exit 1 ; fi
-
-metaflac --help 1>/dev/null 2>/dev/null || (echo "ERROR can't find metaflac executable" 1>&2 && exit 1)
-if [ $? != 0 ] ; then exit 1 ; fi
+flac --help 1>/dev/null 2>/dev/null || die "ERROR can't find flac executable"
+metaflac --help 1>/dev/null 2>/dev/null || die "ERROR can't find metaflac executable"
 
 run_flac ()
 {
@@ -56,25 +59,18 @@
 if run_flac --verify -0 --output-name=$flacfile --force-raw-format --endian=big --sign=signed --channels=1 --bps=8 --sample-rate=44100 $inputfile ; then
 	chmod +w $flacfile
 else
-	echo "ERROR during generation" 1>&2
-	exit 1
+	die "ERROR during generation"
 fi
 
 check_exit ()
 {
 	exit_code=$?
-	if [ $exit_code != 0 ] ; then
-		echo "ERROR, exit code = $exit_code" 1>&2
-		exit 1
-	fi
+	[ $exit_code = 0 ] || die "ERROR, exit code = $exit_code"
 }
 
 check_flac ()
 {
-	if run_flac --silent --test $flacfile ; then : ; else
-		echo "ERROR in $flacfile" 1>&2
-		exit 1
-	fi
+	run_flac --silent --test $flacfile || die "ERROR in $flacfile" 1>&2
 }
 
 check_flac
@@ -305,10 +301,7 @@
 (set -x && run_metaflac --export-cuesheet-to=$cs_out2 $flacfile)
 check_exit
 echo "comparing cuesheets:"
-if diff $cs_out $cs_out2 ; then : ; else
-	echo "ERROR, cuesheets should be identical"
-	exit 1
-fi
+diff $cs_out $cs_out2 || die "ERROR, cuesheets should be identical"
 echo identical
 
 rm -f $cs_out $cs_out2
diff --git a/test/test_streams.sh b/test/test_streams.sh
index c0aa964..c187adb 100755
--- a/test/test_streams.sh
+++ b/test/test_streams.sh
@@ -17,12 +17,17 @@
 #  along with this program; if not, write to the Free Software
 #  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 
+die ()
+{
+	echo $* 1>&2
+	exit 1
+}
+
 LD_LIBRARY_PATH=../src/libFLAC/.libs:../obj/release/lib:../obj/debug/lib:$LD_LIBRARY_PATH
 export LD_LIBRARY_PATH
 PATH=../src/flac:../src/test_streams:../obj/release/bin:../obj/debug/bin:$PATH
 
-flac --help 1>/dev/null 2>/dev/null || (echo "ERROR can't find flac executable" 1>&2 && exit 1)
-if [ $? != 0 ] ; then exit 1 ; fi
+flac --help 1>/dev/null 2>/dev/null || die "ERROR can't find flac executable"
 
 run_flac ()
 {
@@ -35,10 +40,7 @@
 
 echo "Generating streams..."
 if [ ! -f wacky1.wav ] ; then
-	if test_streams ; then : ; else
-		echo "ERROR during test_streams" 1>&2
-		exit 1
-	fi
+	test_streams || die "ERROR during test_streams"
 fi
 
 #
@@ -56,26 +58,21 @@
 	cmd="run_flac --verify --silent --force-raw-format --endian=big --sign=signed --sample-rate=44100 --bps=$bps --channels=$channels $encode_options $name.raw"
 	echo "### ENCODE $name #######################################################" >> ./streams.log
 	echo "###    cmd=$cmd" >> ./streams.log
-	if $cmd 2>>./streams.log ; then : ; else
-		echo "ERROR during encode of $name" 1>&2
-		exit 1
-	fi
+	$cmd 2>>./streams.log || die "ERROR during encode of $name"
+
 	echo -n "decode..."
 	cmd="run_flac --silent --endian=big --sign=signed --decode --force-raw-format --output-name=$name.cmp $name.flac"
 	echo "### DECODE $name #######################################################" >> ./streams.log
 	echo "###    cmd=$cmd" >> ./streams.log
-	if $cmd 2>>./streams.log ; then : ; else
-		echo "ERROR during decode of $name" 1>&2
-		exit 1
-	fi
+	$cmd 2>>./streams.log || die "ERROR during decode of $name"
+
 	ls -1l $name.raw >> ./streams.log
 	ls -1l $name.flac >> ./streams.log
 	ls -1l $name.cmp >> ./streams.log
+
 	echo -n "compare..."
-	if cmp $name.raw $name.cmp ; then : ; else
-		echo "ERROR during compare of $name" 1>&2
-		exit 1
-	fi
+	cmp $name.raw $name.cmp || die "ERROR during compare of $name"
+
 	echo OK
 }
 
@@ -97,45 +94,32 @@
 		cmd="run_flac --verify --silent --force-raw-format --endian=big --sign=signed --sample-rate=44100 --bps=$bps --channels=$channels $encode_options --stdout $name.raw"
 		echo "### ENCODE $name #######################################################" >> ./streams.log
 		echo "###    cmd=$cmd" >> ./streams.log
-		if $cmd 1>$name.flac 2>>./streams.log ; then : ; else
-			echo "ERROR during encode of $name" 1>&2
-			exit 1
-		fi
+		$cmd 1>$name.flac 2>>./streams.log || die "ERROR during encode of $name"
 	else
 		cmd="run_flac --verify --silent --force-raw-format --endian=big --sign=signed --sample-rate=44100 --bps=$bps --channels=$channels $encode_options --stdout -"
 		echo "### ENCODE $name #######################################################" >> ./streams.log
 		echo "###    cmd=$cmd" >> ./streams.log
-		if cat $name.raw | $cmd 1>$name.flac 2>>./streams.log ; then : ; else
-			echo "ERROR during encode of $name" 1>&2
-			exit 1
-		fi
+		cat $name.raw | $cmd 1>$name.flac 2>>./streams.log || die "ERROR during encode of $name"
 	fi
 	echo -n "decode via pipes..."
 	if [ $is_win = yes ] ; then
 		cmd="run_flac --silent --endian=big --sign=signed --decode --force-raw-format --stdout $name.flac"
 		echo "### DECODE $name #######################################################" >> ./streams.log
 		echo "###    cmd=$cmd" >> ./streams.log
-		if $cmd 1>$name.cmp 2>>./streams.log ; then : ; else
-			echo "ERROR during decode of $name" 1>&2
-			exit 1
-		fi
+		$cmd 1>$name.cmp 2>>./streams.log || die "ERROR during decode of $name"
 	else
 		cmd="run_flac --silent --endian=big --sign=signed --decode --force-raw-format --stdout -"
 		echo "### DECODE $name #######################################################" >> ./streams.log
 		echo "###    cmd=$cmd" >> ./streams.log
-		if cat $name.flac | $cmd 1>$name.cmp 2>>./streams.log ; then : ; else
-			echo "ERROR during decode of $name" 1>&2
-			exit 1
-		fi
+		cat $name.flac | $cmd 1>$name.cmp 2>>./streams.log || die "ERROR during decode of $name"
 	fi
 	ls -1l $name.raw >> ./streams.log
 	ls -1l $name.flac >> ./streams.log
 	ls -1l $name.cmp >> ./streams.log
+
 	echo -n "compare..."
-	if cmp $name.raw $name.cmp ; then : ; else
-		echo "ERROR during compare of $name" 1>&2
-		exit 1
-	fi
+	cmp $name.raw $name.cmp || die "ERROR during compare of $name"
+
 	echo OK
 }