From a92a36070ad520afe45cb6dacf1de2f0caac612d Mon Sep 17 00:00:00 2001 From: Dave Reisner Date: Sat, 9 Jun 2018 15:24:42 -0400 Subject: makepkg: fix initialization when extracting arrays Assuming that everything is a string leads to code which is effectively: a= a+=('bar') This creates an array with 2 elements instead of one. Using proper array initialization fixes this. https://lists.archlinux.org/pipermail/pacman-dev/2018-June/022591.html Signed-off-by: Allan McRae --- scripts/libmakepkg/util/pkgbuild.sh.in | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/scripts/libmakepkg/util/pkgbuild.sh.in b/scripts/libmakepkg/util/pkgbuild.sh.in index 10d154d1..3f8669ab 100644 --- a/scripts/libmakepkg/util/pkgbuild.sh.in +++ b/scripts/libmakepkg/util/pkgbuild.sh.in @@ -106,7 +106,11 @@ get_pkgbuild_attribute() { local pkgname=$1 attrname=$2 isarray=$3 outputvar=$4 - printf -v "$outputvar" %s '' + if (( isarray )); then + eval "$outputvar=()" + else + printf -v "$outputvar" %s '' + fi if [[ $pkgname ]]; then extract_global_variable "$attrname" "$isarray" "$outputvar" -- cgit v1.2.3-70-g09d2