]> mj.ucw.cz Git - moe.git/blobdiff - bin/lib
Decreased the amount of shell magic in override-vars.
[moe.git] / bin / lib
diff --git a/bin/lib b/bin/lib
index a84258cb162aeed79730d40d4701e361063350bf..2e9ed7edec8bce0578b3a33fda4e8c85dd834125 100644 (file)
--- a/bin/lib
+++ b/bin/lib
@@ -53,14 +53,13 @@ function try-ln
 
 function override-vars
 {
-       local OR V OLDIFS
+       local OR V W
        declare -a OR
-       OLDIFS="$IFS"
-       IFS=$'\n'
-       OR=($(set | sed "s/^$1_//;t;d")) || true
-       IFS="$OLDIFS"
+       # `${!${1}_@}' does not work, so we have to use eval
+       OR=($(eval echo '${!'$1'_@}'))
        for V in "${OR[@]}" ; do
-               eval "$V"
+               W=${V##$1_}
+               eval $W='"$'$V'"'
        done
 }
 
@@ -178,8 +177,7 @@ function compile
        box-clean
        for a in $SRC $COMP_EXTRAS ; do cp $TDIR/$a $BOXDIR/ ; done
        EXE=$PROBLEM
-       CCMD=COMP_$SRCEXT
-       CCMD=`eval echo ${!CCMD}`
+       CCMD=`eval echo $COMP`
        COMP_SANDBOX_OPTS=`eval echo $COMP_SANDBOX_OPTS`
        echo "Compiler command: $CCMD"
        echo "Compiler sandbox options: $COMP_SANDBOX_OPTS"