Hello,
with the latest git version of dash trap actions are not
evaluated in the context of a function.
The following script demonstrates the bug:
----8<----
read_timeout () {
saved_traps="$(trap)"
trap 'printf "timed out\n"; eval "${saved_traps}"; return' TERM
( sleep $1; kill -TERM $$ ) >/dev/null 2>&1 &
timer_pid=$!
read $2
kill $timer_pid 2>/dev/null
}
read_timeout 5 value
printf "read \"%s\"\n" "${value:=default}"
---->8----
The return statement in the trap inside the read_timeout function
does not return from the function but rather exits the script.
With dash 0.5.5.1 it works as expected.
--
Guido Berhoerster
--
To unsubscribe from this list: send the line "unsubscribe dash" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html