Browse Source

almost child_error

main
pvincent 2 weeks ago
parent
commit
f9888f3b6c
  1. 23
      bin/miaou-bash
  2. 1
      test/stub/extra/library.bash

23
bin/miaou-bash

@ -290,6 +290,7 @@ function dump_failure {
function save_err_trace_to_main {
miaou_debug "<save_stacktrace_to_stderr count=${#error_source[@]} to=${MIAOU_BASH_ERROR_CHILDREN}>"
local i source lineno funcname
for i in "${tmp_error[@]}"; do >>"$MIAOU_BASH_ERROR_CHILDREN" echo "$i"; done
for i in "${!error_source[@]}"; do
source="${error_source[$i]}"
lineno="${error_lineno[$i]}"
@ -297,7 +298,6 @@ function save_err_trace_to_main {
miaou_debug "<trace source=${source} lineno=${lineno} funcname=${funcname}/>"
>>"$MIAOU_BASH_ERROR_CHILDREN" echo -e "\tmiaou_trace: source=${source} lineno=${lineno} funcname=${funcname}"
done
for i in "${tmp_error[@]}"; do >>"$MIAOU_BASH_ERROR_CHILDREN" echo "$i"; done
miaou_debug "</save_stacktrace_to_stderr>"
}
@ -347,10 +347,25 @@ function load_tmp_error {
miaou_debug "<tmp_error empty/>"
else
miaou_debug "<tmp_error count=${count}>"
local i
for i in "${tmp_error[@]}"; do
miaou_debug "<tmperr content={$i}/>"
local i miaou_error_regex last_miaou_error_index=-1 content
local multiple_errors=()
miaou_error_regex='^(.*): line ([0-9]+): miaou_error:'
for i in "${!tmp_error[@]}"; do
content="${tmp_error[i]}"
miaou_debug "<tmperr index=$i content={$content}/>"
if [[ "$content" =~ $miaou_error_regex ]]; then
if [[ $last_miaou_error_index -ge 0 ]]; then
multiple_errors+=("$last_miaou_error_index")
fi
last_miaou_error_index=$i
fi
done
if [[ "${#multiple_errors[@]}" -gt 0 ]]; then
miaou_debug "multiple_errors = ${multiple_errors[*]}"
for i in "${multiple_errors[@]}"; do unset "tmp_error[$i]"; done
tmp_error=("${tmp_error[@]}")
fi
miaou_debug "</tmp_error>"
fi
else

1
test/stub/extra/library.bash

@ -6,7 +6,6 @@
function library {
echo library loaded
>&2 echo stderr from library
pwd
# . "./test/stub/extra/onemore.bash"
"./test/stub/extra/onemore.bash"
}

Loading…
Cancel
Save