I don't see an obvious need to fiddle with the expr calls here. They may be ugly, but I don't think they're what's failing.
Paul Dufresne's idea in https://launchpad.net/ubuntu/+source/xorg/+bug/68267/comments/27 looks correct, but I think his suggested fix is wrong; $_retval is an internal variable (per the underscore) and is best not checked outside the run function. The right answer seems to be to simply remove 'run' here, since 'run' is effectively '|| true' with some extra reporting. We're running inside 'set +e' already, so this is harmless.
I don't see an obvious need to fiddle with the expr calls here. They may be ugly, but I don't think they're what's failing.
Paul Dufresne's idea in https:/ /launchpad. net/ubuntu/ +source/ xorg/+bug/ 68267/comments/ 27 looks correct, but I think his suggested fix is wrong; $_retval is an internal variable (per the underscore) and is best not checked outside the run function. The right answer seems to be to simply remove 'run' here, since 'run' is effectively '|| true' with some extra reporting. We're running inside 'set +e' already, so this is harmless.