On 25/05/10 12:22, Dan McGee wrote:
On Sun, May 23, 2010 at 8:32 AM, Andres P<aepd87@gmail.com> wrote:
Signed-off-by: Andres P<aepd87@gmail.com> --- scripts/makepkg.sh.in | 34 +++++++++------------------------- 1 files changed, 9 insertions(+), 25 deletions(-)
diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in index fd1b68b..efd3d80 100644 --- a/scripts/makepkg.sh.in +++ b/scripts/makepkg.sh.in @@ -947,31 +947,15 @@ write_pkginfo() { echo "force = true" fi
- local it - for it in "${license[@]}"; do - echo "license = $it" - done - for it in "${replaces[@]}"; do - echo "replaces = $it" - done - for it in "${groups[@]}"; do - echo "group = $it" - done - for it in "${depends[@]}"; do - echo "depend = $it" - done - for it in "${optdepends[@]}"; do - echo "optdepend = $it" - done - for it in "${conflicts[@]}"; do - echo "conflict = $it" - done - for it in "${provides[@]}"; do - echo "provides = $it" - done - for it in "${backup[@]}"; do - echo "backup = $it" - done + [[ $license ]]&& printf "license = %s\n" "${license[@]}" + [[ $replaces ]]&& printf "replaces = %s\n" "${replaces[@]}" + [[ $groups ]]&& printf "group = %s\n" "${groups[@]}" + [[ $depends ]]&& printf "depend = %s\n" "${depends[@]}" + [[ $optdepend ]]&& printf "optdepend = %s\n" "${optdepends[@]}" + [[ $conflict ]]&& printf "conflict = %s\n" "${conflicts[@]}" + [[ $provides ]]&& printf "provides = %s\n" "${provides[@]}" + [[ $backup ]]&& printf "backup = %s\n" "${backup[@]}" + for it in "${packaging_options[@]}"; do local ret="$(check_option $it)" if [[ $ret != "?" ]]; then --
This looks really cool, but where is this printf behavior documented? I can't find it at all in the bash manpage. Is it portable to different (read: older) versions of bash?
I can confirm that this works in bash-3.1.17 which is from 2005. I think that is old enough. Remember that this patch relies on the one removing all the >.PKGINFO redirections when it comes time to commit. Allan