## we write that to another pipe (fd 5) and pick it out using command
## substitution.
rc=$(
- { { { { set +e; $lbuf "$cmd" "$@"; echo $? >&5; } |
- while read line; do echo "| $line"; done >&4; } 2>&1 |
- while read line; do echo "* $line"; done >&4; } 4>&1 |
+ { { { { set +e; $lbuf "$cmd" "$@" 3>&- 4>&- 5>&-; echo $? >&5; } |
+ while IFS= read line; do echo "| $line"; done >&4; } 2>&1 |
+ while IFS= read line; do echo "* $line"; done >&4; } 4>&1 |
cat -u >&3; } 5>&1 </dev/null
)