X-Git-Url: https://git.stderr.nl/gitweb?p=matthijs%2Fupstream%2Fbackupninja.git;a=blobdiff_plain;f=lib%2Ftools.in;h=eeec5900ce567201f8b449eb9096898546d6164c;hp=888dad133b627b3bd0d4a12f565609d8c127b40f;hb=9d7fee1c1978abfeacc86652abdb9de6e0a2a0c4;hpb=ecf8ddbe3aee37f5a2b772207b3deea3d952d2cb diff --git a/lib/tools.in b/lib/tools.in index 888dad1..eeec590 100644 --- a/lib/tools.in +++ b/lib/tools.in @@ -31,10 +31,10 @@ function setsection() { # file and section and echoes its value. If it is empty or not found, $2 # is used. function printconf() { - CURRENT_PARAM=$1 - ret=`@AWK@ -f $libdirectory/parseini S=$CURRENT_SECTION P=$CURRENT_PARAM $CURRENT_CONF_FILE` + local CURRENT_PARAM=$1 + local ret=`@AWK@ -f $libdirectory/parseini S=$CURRENT_SECTION P=$CURRENT_PARAM $CURRENT_CONF_FILE` # if nothing is returned, set the default - if [ "$ret" == "" -a "$2" != "" ]; then + if [ -z "$ret" -a -n "$2" ]; then ret="$2" fi @@ -48,13 +48,11 @@ function printconf() { # same name. If it is empty or not found, $2 is used. # function getconf() { - ret=`printconf "$1" "$2"` + local ret=`printconf "$1" "$2"` - # replace * with %, so that it is not globbed. - ret="${ret//\\*/__star__}" - - # this is weird, but single quotes are needed to - # allow for returned values with spaces. $ret is still expanded - # because it is in an 'eval' statement. - eval $1='$ret' + # We use escape the $ in $ret to delay expansion of $ret, so when $1 + # is foo, eval sees foo=$ret and properly does the assignment + # (without the backslash, the right part of the assignment would be + # whatever is in ret and be subject to all kinds of expansion. + eval $1=\$ret }