[pacman-dev] [PATCH] makepkg: fix initialization when extracting arrays
Dave Reisner
dreisner at archlinux.org
Sat Jun 9 19:24:42 UTC 2018
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
---
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"
--
2.17.1
More information about the pacman-dev
mailing list