Tight variable scoping should avoid further regressions with new patches and
variable overriding (see what ac5c2fd09 fixed).

Signed-off-by: Andres P <[email protected]>
---
 scripts/makepkg.sh.in |   30 ++++++++++++++++++++++--------
 1 files changed, 22 insertions(+), 8 deletions(-)

diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
index 37241bd..630d9c2 100644
--- a/scripts/makepkg.sh.in
+++ b/scripts/makepkg.sh.in
@@ -146,12 +146,14 @@ clean_up() {
                        if (( PKGFUNC )); then
                                rm -f 
"${pkgbase}-${pkgver}-${pkgrel}-${CARCH}-package.log"*
                        elif (( SPLITPKG )); then
+                               local pkg
                                for pkg in ${pkgna...@]}; do
                                        rm -f 
"${pkgbase}-${pkgver}-${pkgrel}-${CARCH}-package_${pkg}.log"*
                                done
                        fi
 
                        # clean up dangling symlinks to packages
+                       local file
                        for pkg in ${pkgna...@]}; do
                                for file in ${pkg}-*-*-${CARCH}${PKGEXT}; do
                                        if [[ -h $file && ! -e $file ]]; then
@@ -308,7 +310,7 @@ get_downloadclient() {
        for i in "${dlagen...@]}"; do
                local handler="${i%%::*}"
                if [[ $proto = $handler ]]; then
-                       agent="${i##*::}"
+                       local agent="${i##*::}"
                        break
                fi
        done
@@ -384,6 +386,9 @@ run_pacman() {
 check_deps() {
        (( $# > 0 )) || return
 
+       # XXX: Due to a bash bug, pmout's subshell cannot be declared sensibly:
+       #      local pmout=$(run_pacman -T "$@")
+       local pmout
        local ret=0
        pmout=$(run_pacman -T "$@")
        ret=$?
@@ -651,7 +656,7 @@ extract_sources() {
        msg "$(gettext "Extracting Sources...")"
        local netfile
        for netfile in "${sour...@]}"; do
-               file=$(get_filename "$netfile")
+               local file=$(get_filename "$netfile")
                if in_array "$file" ${noextra...@]}; then
                        #skip source files in the noextract=() array
                        #  these are marked explicitly to NOT be extracted
@@ -727,7 +732,7 @@ run_function() {
        if [[ -z $1 ]]; then
                return 1
        fi
-       pkgfunc="$1"
+       local pkgfunc="$1"
 
        # clear user-specified makeflags if requested
        if [[ $(check_option makeflags) = "n" ]]; then
@@ -743,8 +748,9 @@ run_function() {
        local shellopts=$(shopt -p)
 
        local ret=0
+       local restoretrap
        if (( LOGGING )); then
-               
BUILDLOG="${startdir}/${pkgbase}-${pkgver}-${pkgrel}-${CARCH}-$pkgfunc.log"
+               local 
BUILDLOG="${startdir}/${pkgbase}-${pkgver}-${pkgrel}-${CARCH}-$pkgfunc.log"
                if [[ -f $BUILDLOG ]]; then
                        local i=1
                        while true; do
@@ -799,6 +805,7 @@ run_build() {
 }
 
 run_package() {
+       local pkgfunc
        if [[ -z $1 ]]; then
                pkgfunc="package"
        else
@@ -932,6 +939,7 @@ write_pkginfo() {
        [[ $provides ]]   && printf "provides = %s\n"  "${provid...@]}"
        [[ $backup ]]     && printf "backup = %s\n"    "${back...@]}"
 
+       local it
        for it in "${packaging_optio...@]}"; do
                local ret="$(check_option $it)"
                if [[ $ret != "?" ]]; then
@@ -980,6 +988,7 @@ create_package() {
        cd "$pkgdir"
        msg "$(gettext "Creating package...")"
 
+       local nameofpkg
        if [[ -z $1 ]]; then
                nameofpkg="$pkgname"
        else
@@ -997,6 +1006,7 @@ create_package() {
        local comp_files=".PKGINFO"
 
        # check for changelog/install files
+       local i orig dest
        for i in 'changelog' 'install'; do
                orig="${!i}"
                dest=".${i^^}"
@@ -1011,6 +1021,7 @@ create_package() {
        # tar it up
        msg2 "$(gettext "Compressing package...")"
 
+       local EXT
        case "$PKGEXT" in
                *tar.gz)  EXT=${PKGEXT%.gz} ;;
                *tar.bz2) EXT=${PKGEXT%.bz2} ;;
@@ -1135,7 +1146,7 @@ install_package() {
                msg "$(gettext "Installing %s package group with %s -U...")" 
"$pkgbase" "$PACMAN"
        fi
 
-       local pkglist
+       local pkg pkglist
        for pkg in ${pkgna...@]}; do
                if [[ -f $PKGDEST/${pkg}-${pkgver}-${pkgrel}-${CARCH}${PKGEXT} 
]]; then
                        pkglist="${pkglist} 
$PKGDEST/${pkg}-${pkgver}-${pkgrel}-${CARCH}${PKGEXT}"
@@ -1215,7 +1226,7 @@ check_sanity() {
 
        local optdepend
        for optdepend in "${optdepen...@]}"; do
-               pkg=${optdepend%%:*}
+               local pkg=${optdepend%%:*}
                if [[ ! $pkg =~ ^[[:alnum:]\>\<\=\.\+\_\-]*$ ]]; then
                        error "$(gettext "Invalid syntax for optdepend : 
'%s'")" "$optdepend"
                fi
@@ -1360,15 +1371,17 @@ devel_update() {
 }
 
 backup_package_variables() {
+       local var
        for var in ${splitpkg_overrid...@]}; do
-               indirect="${var}_backup"
+               local indirect="${var}_backup"
                eval "${indirect}=(\"\${$v...@]}\")"
        done
 }
 
 restore_package_variables() {
+       local var
        for var in ${splitpkg_overrid...@]}; do
-               indirect="${var}_backup"
+               local indirect="${var}_backup"
                if [[ -n ${!indirect} ]]; then
                        eval "${var}=(\"\${$indire...@]}\")"
                else
@@ -1383,6 +1396,7 @@ parse_options() {
        local long_options=$1; shift;
        local ret=0;
        local unused_options=""
+       local i
 
        while [[ -n $1 ]]; do
                if [[ ${1:0:2} = '--' ]]; then
-- 
1.7.1


Reply via email to