Fix the assert alias to avoid 'value to great for base' messages in some cases.
authorZac Medico <zmedico@gentoo.org>
Sat, 19 Dec 2009 04:18:38 +0000 (04:18 -0000)
committerZac Medico <zmedico@gentoo.org>
Sat, 19 Dec 2009 04:18:38 +0000 (04:18 -0000)
Thanks to Jonathan Callen <abcd@g.o> for reporting.

svn path=/main/trunk/; revision=15121

bin/isolated-functions.sh

index 893ce57ba0fb4b01fb42767cfc2b00eac220738f..bf0bb16b84ae7ef7017954cf63eb40f305d39a5a 100755 (executable)
@@ -5,10 +5,16 @@
 # We need this next line for "die" and "assert". It expands
 # It _must_ preceed all the calls to die and assert.
 shopt -s expand_aliases
-alias assert='_pipestatus="${PIPESTATUS[*]}"; [[ "${_pipestatus// /}" -eq 0 ]] || die'
 alias save_IFS='[ "${IFS:-unset}" != "unset" ] && old_IFS="${IFS}"'
 alias restore_IFS='if [ "${old_IFS:-unset}" != "unset" ]; then IFS="${old_IFS}"; unset old_IFS; else unset IFS; fi'
 
+assert() {
+       local x pipestatus=${PIPESTATUS[*]}
+       for x in $pipestatus ; do
+               [[ $x -eq 0 ]] || die "$@"
+       done
+}
+
 shopt -s extdebug
 
 # dump_trace([number of funcs on stack to skip],
@@ -519,7 +525,8 @@ save_ebuild_env() {
                done
                unset x
 
-               unset -f dump_trace die diefunc quiet_mode vecho elog_base eqawarn elog \
+               unset -f assert dump_trace die diefunc \
+                       quiet_mode vecho elog_base eqawarn elog \
                        esyslog einfo einfon ewarn eerror ebegin _eend eend KV_major \
                        KV_minor KV_micro KV_to_int get_KV unset_colors set_colors has \
                        has_phase_defined_up_to \