commit:     84ba7d0ccde1869bed07f9d9b9c2fac09f48c13a
Author:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Sun Sep  8 08:35:51 2019 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Sun Sep  8 08:35:51 2019 +0000
URL:        https://gitweb.gentoo.org/proj/gcc-config.git/commit/?id=84ba7d0c

gcc-config: consolidate profiles sourcing logic in a single function

Bug: https://bugs.gentoo.org/174422
Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>

 gcc-config | 29 +++++++++++------------------
 1 file changed, 11 insertions(+), 18 deletions(-)

diff --git a/gcc-config b/gcc-config
index 9965449..dd11c71 100755
--- a/gcc-config
+++ b/gcc-config
@@ -80,16 +80,15 @@ show_var() {
        echo "${!1}"
 }
 
-# Compatibility with profile files created before 2019-09-05.
-# These profile files were setting PATH variable.
-# Sourcing them without restoring previous PATH value breaks gcc-config.
-source_profile_pre() {
-       __PATH__=${PATH}
-}
+source_profile() {
+       # Compatibility with profile files created before 2019-09-05.
+       # These profile files were setting PATH variable.
+       # Sourcing them without restoring previous PATH value breaks gcc-config.
+       local backup_PATH=${PATH}
+
+       source "$1"
 
-source_profile_post() {
-       PATH=${__PATH__}
-       unset __PATH__
+       PATH=${backup_PATH}
 }
 
 try_real_hard_to_find_CHOST() {
@@ -545,9 +544,7 @@ prefix_copy_gcc_libs() {
        for x in ${GCC_PROFILES} ; do
                unset GCC_PATH LDPATH
                eval $(
-                       source_profile_pre
-                       source "${x}"
-                       source_profile_post
+                       source_profile "${x}"
                        echo "GCC_PATH='${GCC_PATH}'"
                        echo "LDPATH='${LDPATH%%:*}'"
                )
@@ -613,9 +610,7 @@ switch_profile() {
 
        # Setup things properly again for this profile
        unset GCC_SPECS LDPATH MULTIOSDIRS
-       source_profile_pre
-       source "${GCC_ENV_D}/${CC_COMP}"
-       source_profile_post
+       source_profile "${GCC_ENV_D}/${CC_COMP}"
        # Support older configs that did not setup MULTIOSDIRS for us.
        : ${MULTIOSDIRS:=../${GENTOO_LIBDIR}}
 
@@ -830,9 +825,7 @@ list_profiles() {
                if [[ ${x} == ${CURRENT_NATIVE} ]] ; then
                        x="${x} ${GOOD}*${NORMAL}"
                elif [[ -e ${GCC_ENV_D}/config-${target} ]] ; then
-                       source_profile_pre
-                       source "${GCC_ENV_D}/config-${target}"
-                       source_profile_post
+                       source_profile "${GCC_ENV_D}/config-${target}"
                        [[ ${x} == ${CURRENT} ]] && x="${x} ${HILITE}*${NORMAL}"
                fi
                echo " [${i}] ${x}"

Reply via email to