From: Zac Medico Date: Sun, 25 Nov 2007 09:09:02 +0000 (-0000) Subject: The qa_call() function and anything before it are portage internals X-Git-Tag: v2.1.4~217 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=62c4fdbc5d7ab789f449d3a3c5cc4c14e51bfbab;p=portage.git 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(). (trunk r8653) svn path=/main/branches/2.1.2/; revision=8656 --- diff --git a/bin/isolated-functions.sh b/bin/isolated-functions.sh index 673f1ad85..d24e42e2f 100644 --- a/bin/isolated-functions.sh +++ b/bin/isolated-functions.sh @@ -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]}