diff --git a/poc b/poc
index 4cd9dc1..1e3fc4e 100755
--- a/poc
+++ b/poc
@@ -229,8 +229,10 @@ function on_exit {
trap - RETURN
local code="${1:-0}" last_error regex
- mapfile -t tmp_error <"$MIAOU_BASH_ERROR"
- 2>&3 >&3 dump_stderr
+ miaou_debug ""
+
+ [[ ! -v tmp_error ]] && mapfile -t tmp_error <"$MIAOU_BASH_ERROR"
+
if [[ -v failure_type && "$failure_type" == 'RETURN' ]]; then
last_error="${tmp_error[-1]}"
regex='^(.*): line ([0-9]+): miaou_error: RETURN [0-9]+'
@@ -249,7 +251,7 @@ function on_exit {
else
if [[ $code -gt 0 && ${#tmp_error[@]} -gt 0 ]]; then
last_error="${tmp_error[-1]}"
- miaou_debug ""
+ miaou_debug ""
if [[ $code -eq 1 ]]; then
regex='^(.*): line ([0-9]+): (.*): unbound variable$'
if [[ "$last_error" =~ $regex ]]; then
@@ -272,16 +274,20 @@ function on_exit {
error_funcname=("${error_funcname[@]}" '')
fi
fi
+ miaou_debug ""
fi
- miaou_debug ""
fi
- if [[ $code -gt 0 && -v failure_type ]]; then
+ 2>&3 >&3 dump_stderr
+ if [[ -v failure_type ]]; then
2>&3 >&4 dump_failure
2>&3 >&4 dump_stacktrace
fi
-
- miaou_debug ""
+ if [[ $code -gt 0 ]]; then
+ miaou_debug ""
+ else
+ miaou_debug ""
+ fi
}
## main
@@ -301,7 +307,6 @@ trap 'on_return' RETURN
if [[ -e /proc/$$/fd/3 ]]; then exec 4>&3 3>&-; else exec 4>/dev/tty; fi # swap fd 3 4 when fd 3 sent off
exec 3>/dev/stderr 2>"$MIAOU_BASH_ERROR"
-miaou_debug ""
+miaou_debug ""
# shellcheck source=/dev/null
source "$BASH_ARGV0"
-miaou_debug ""