[pacman-dev] [PATCH] makepkg: revert bash4-ism

Andres P aepd87 at gmail.com
Sun Jun 20 13:31:54 EDT 2010


On Sun, Jun 20, 2010 at 9:00 AM, Allan McRae <allan at archlinux.org> wrote:
> Commit 3d67d9b1 introduced a bash4 string manipulation.  Revert that
> in order retain compatibility with bash-3.2 which is still widely
> used.
>
> Signed-off-by: Allan McRae <allan at archlinux.org>
> ---
>
> This is for the maint branch
>
>  scripts/makepkg.sh.in |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
> index c6bc738..3bc6019 100644
> --- a/scripts/makepkg.sh.in
> +++ b/scripts/makepkg.sh.in
> @@ -1665,7 +1665,7 @@ if (( CLEANCACHE )); then
>                echo -n "$(gettext "    Are you sure you wish to do this? ")"
>                echo -n "$(gettext "[y/N]")"
>                read answer
> -               answer="${answer^^}"
> +               answer=$(echo $answer | tr '[:lower:]' '[:upper:]')

Before you change all of these to tr(1), please use a here-string
instead of a less elegant `echo | foo` subshell.

$ tr '[lower:]' '[upper:]' <<<"$answer"

Notice that answer should be quoted because it's unfiltered user data...

And also keep in mind that most situations were echo | foo would be
used in makepkg are already using a here-string.

here-strings (<<<) are bash32 compat.

Andres P

>                if [[ $answer = $(gettext YES) || $answer = $(gettext Y) ]]; then
>                        rm "$SRCDEST"/*
>                        if (( $? )); then
> --
> 1.7.1
>
>
>


More information about the pacman-dev mailing list