Enable manual checking of test results
diff --git a/tests/all.sh b/tests/all.sh
index a159e03..e03b1fc 100755
--- a/tests/all.sh
+++ b/tests/all.sh
@@ -1,4 +1,4 @@
-#! /bin/sh
+#! /bin/bash
 
 script="$0"
 
@@ -10,24 +10,41 @@
 	bc="$1"
 fi
 
-set -e
-
 bcdir=$(dirname "${bc}")
 
 out1="$bcdir/log_bc.txt"
 out2="$bcdir/log_test.txt"
 
-while read t; do
+while read -u 10 t; do
 
 	echo "$t"
 	"$testdir/test.sh" "$t" "$bc" "$out1" "$out2"
 
-done < "$testdir/all.txt"
+	ret="$?"
+
+	if [ "$ret" -ne 0 ]; then
+
+		command -v meld >/dev/null 2>&1
+
+		ret2="$?"
+
+		if [ "$ret2" -eq 0 ]; then
+			meld "$out1" "$out2"
+		fi
+
+		read -p "Continue? " reply
+		if [[ $reply =~ ^[Yy]$ ]]; then
+			continue
+		else
+			exit "$ret"
+		fi
+
+	fi
+
+done 10< "$testdir/all.txt"
 
 "$testdir/scripts.sh" "$bc" "$out1" "$out2"
 
-set +e
-
 # TODO: Read tests
 # TODO: Lex errors
 # TODO: Parse errors
diff --git a/tests/scripts.sh b/tests/scripts.sh
index 8a295df..d7b6942 100755
--- a/tests/scripts.sh
+++ b/tests/scripts.sh
@@ -1,4 +1,4 @@
-#! /bin/sh
+#! /bin/bash
 
 script="$0"
 
@@ -9,8 +9,6 @@
 	exit 1
 fi
 
-set -e
-
 bc="$1"
 shift
 
@@ -32,9 +30,28 @@
 
 	diff "$out1" "$out2"
 
-done
+	ret="$?"
 
-set +e
+	if [ "$ret" -ne 0 ]; then
+
+		command -v meld >/dev/null 2>&1
+
+		ret2="$?"
+
+		if [ "$ret2" -eq 0 ]; then
+			meld "$out1" "$out2"
+		fi
+
+		read -p "Continue? " reply
+		if [[ $reply =~ ^[Yy]$ ]]; then
+			continue
+		else
+			exit "$ret"
+		fi
+
+	fi
+
+done
 
 # TODO: Read tests
 # TODO: Lex errors
diff --git a/tests/test.sh b/tests/test.sh
index a830a6f..c051096 100755
--- a/tests/test.sh
+++ b/tests/test.sh
@@ -59,5 +59,5 @@
 	echo "halt" | "$bc" -lq "$name" > "$out2"
 fi
 
-	diff "$out1" "$out2"
+diff "$out1" "$out2"