only calculate spacing width for that part of the stack that we're going to print
authorFabian Groffen <grobian@gentoo.org>
Sat, 3 Oct 2009 20:41:40 +0000 (20:41 -0000)
committerFabian Groffen <grobian@gentoo.org>
Sat, 3 Oct 2009 20:41:40 +0000 (20:41 -0000)
svn path=/main/trunk/; revision=14482

bin/isolated-functions.sh

index bb9b9a042a0543bd8796b1e91fcef99870a5d07f..9041846d0927c5b48624c54f1a2a3597d84c41aa 100755 (executable)
@@ -79,11 +79,18 @@ die() {
        fi
        local n filespacing=0 linespacing=0
        # setup spacing to make output easier to read
-       for ((n = ${#FUNCNAME[@]} - 1; n >= 0; --n)); do
+       (( n = ${#FUNCNAME[@]} - 1 ))
+       while (( n > 0 )) ; do
+               [ "${FUNCNAME[${n}]}" == "qa_call" ] && break
+               (( n-- ))
+       done
+       (( n == 0 )) && (( n = ${#FUNCNAME[@]} - 1 ))
+       while (( n >= 0 )); do
                sourcefile=${BASH_SOURCE[${n}]} sourcefile=${sourcefile##*/}
                lineno=${BASH_LINENO[${n}]}
                ((filespacing < ${#sourcefile})) && filespacing=${#sourcefile}
                ((linespacing < ${#lineno}))     && linespacing=${#lineno}
+               (( n-- ))
        done
 
        eerror