Only calculate the space (width) for functions/line numbers that are actually going...
authorFabian Groffen <grobian@gentoo.org>
Sun, 20 Jan 2008 18:58:37 +0000 (18:58 -0000)
committerFabian Groffen <grobian@gentoo.org>
Sun, 20 Jan 2008 18:58:37 +0000 (18:58 -0000)
svn path=/main/branches/prefix/; revision=9211

bin/isolated-functions.sh

index c6f53bc17badcd79c4ee38f8687f6a74e4bd3c57..6deaaf69512e86e7733b272db960ebbb957cdffd 100755 (executable)
@@ -59,11 +59,18 @@ diefunc() {
        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