The qa_call() function and anything before it are portage internals
authorZac Medico <zmedico@gentoo.org>
Sun, 25 Nov 2007 09:09:02 +0000 (09:09 -0000)
committerZac Medico <zmedico@gentoo.org>
Sun, 25 Nov 2007 09:09:02 +0000 (09:09 -0000)
that the user will not be interested in. Therefore, the stack trace
should only show calls that come after qa_call(). (trunk r8653)

svn path=/main/branches/2.1.2/; revision=8656

bin/isolated-functions.sh

index 673f1ad854432c37db72653e93cb4a9ed4bd2583..d24e42e2f90f2c4a8d82ff845664448a6de7aeac 100644 (file)
@@ -20,8 +20,18 @@ dump_trace() {
        declare -i strip=${1:-1}
        local filespacing=$2 linespacing=$3
 
+       # The qa_call() function and anything before it are portage internals
+       # that the user will not be interested in. Therefore, the stack trace
+       # should only show calls that come after qa_call().
+       (( n = ${#FUNCNAME[@]} - 1 ))
+       while (( n > 0 )) ; do
+               [ "${FUNCNAME[${n}]}" == "qa_call" ] && break
+               (( n-- ))
+       done
+       (( n == 0 )) && (( n = ${#FUNCNAME[@]} - 1 ))
+
        eerror "Call stack:"
-       for (( n = ${#FUNCNAME[@]} - 1, p = ${#BASH_ARGV[@]} ; n > ${strip} ; n-- )) ; do
+       for (( p = ${#BASH_ARGV[@]} ; n > ${strip} ; n-- )) ; do
                funcname=${FUNCNAME[${n} - 1]}
                sourcefile=$(basename ${BASH_SOURCE[${n}]})
                lineno=${BASH_LINENO[${n} - 1]}