isolated-functions.sh: fix syntax error for die
authorZac Medico <zmedico@gentoo.org>
Sun, 30 Jan 2011 22:19:13 +0000 (14:19 -0800)
committerZac Medico <zmedico@gentoo.org>
Wed, 2 Feb 2011 23:21:45 +0000 (15:21 -0800)
Fix die so that dump_trace is not called when the main script is a
helper binary. This prevents the following error message when a helper
dies automatically in EAPI 4:

isolated-functions.sh: line 61: p -=  : syntax error: operand expected (error token is "-=  ")

bin/isolated-functions.sh

index 1403c0aacbcbf3ca1764ff8c8d431107f601ca0a..8af202f6576c1be2d8f6ecd2cab62dc5800ebd76 100644 (file)
@@ -139,8 +139,10 @@ die() {
        eerror "ERROR: $CATEGORY/$PF failed:"
        eerror "  ${*:-(no error message)}"
        eerror
-       # This part is useless when called by the die helper.
-       if [[ ${BASH_SOURCE[1]##*/} != die ]] ; then
+       # dump_trace is useless when the main script is a helper binary
+       local main_index
+       (( main_index = ${#BASH_SOURCE[@]} - 1 ))
+       if has ${BASH_SOURCE[$main_index]##*/} ebuild.sh misc-functions.sh ; then
        dump_trace 2 ${filespacing} ${linespacing}
        eerror "  $(printf "%${filespacing}s" "${BASH_SOURCE[1]##*/}"), line $(printf "%${linespacing}s" "${BASH_LINENO[0]}"):  Called die"
        eerror "The specific snippet of code:"