flag-o-matic.eclass: Replace unnecessary evals
authorMichał Górny <mgorny@gentoo.org>
Wed, 22 Feb 2017 19:20:10 +0000 (20:20 +0100)
committerMichał Górny <mgorny@gentoo.org>
Wed, 8 Mar 2017 07:35:27 +0000 (08:35 +0100)
Replace the evals used to export variables with plain export calls. Bash
expands variable references for exported variable name anyway, rendering
the eval completely unnecessary.

Replace the single eval used for indirect variable reference with the
${!...} substitution which serves that exact purpose in bash.

eclass/flag-o-matic.eclass

index 6d41ddd30f71a880aaf98715143afbf0cf3d48dd..b2f3742b3ecfc5804970eb0da633122d1778eedd 100644 (file)
@@ -116,7 +116,7 @@ _filter-var() {
                done
                new+=( "${f}" )
        done
-       eval export ${var}=\""${new[*]}"\"
+       export ${var}="${new[*]}"
 }
 
 # @FUNCTION: filter-flags
@@ -270,7 +270,7 @@ replace-flags() {
                        [[ ${f} == ${1} ]] && f=${2}
                        new+=( "${f}" )
                done
-               eval export ${var}=\""${new[*]}"\"
+               export ${var}="${new[*]}"
        done
 
        return 0
@@ -295,9 +295,8 @@ replace-cpu-flags() {
 }
 
 _is_flagq() {
-       local x var
-       eval var=\""\${$1[*]}"\"
-       for x in ${var} ; do
+       local x var="$1[*]"
+       for x in ${!var} ; do
                [[ ${x} == $2 ]] && return 0
        done
        return 1
@@ -411,7 +410,7 @@ strip-flags() {
                if [[ ${!var} != "${new[*]}" ]] ; then
                        einfo "strip-flags: ${var}: changed '${!var}' to '${new[*]}'"
                fi
-               eval export ${var}=\""${new[*]}"\"
+               export ${var}="${new[*]}"
        done
 
        set +f  # re-enable pathname expansion