On Mon, Jun 21, 2010 at 1:06 AM, Allan McRae <allan@archlinux.org> wrote:
pmout=$(run_pacman -T "$@") <- HERE ret=$?
The first one gets set off anytime "depends" or "makedepends" are empty and can be fixed by using "|| return 0", but the second is doing my head in... Of course, turning off the error trap around those commands makes it work, and that may be an OK approach given we are dealing with all error states below that.
Try: ret=$? pmout=$(run_pacman -T "$@") || ret=$? Using || after the asigment will prevent setting the err trap. Funny how you noticed the first, because I was about to submit a patch that did not return false if there were no arguments. In reality though, it should be this: [[ $@ ]] || return 0 Because (( $# )) will not count emtpy arguments. If check_deps is passed quoted arguments that expand to nothing, it will malfunction. Andres P