From 2b9ad96d4cd04bef4673d5b2c62315d8bf423a93 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Mon, 25 Nov 2002 00:21:32 +0000 Subject: [PATCH] restore additional quoting on variables --- config/install-sh | 83 ++++++++++++++++++++++++----------------------- 1 file changed, 42 insertions(+), 41 deletions(-) diff --git a/config/install-sh b/config/install-sh index 8dff05b74a..bc62250f25 100755 --- a/config/install-sh +++ b/config/install-sh @@ -55,8 +55,8 @@ dst="" dir_arg="" while [ x"$1" != x ]; do - case "$1" in - -c) instcmd=$cpprog + case $1 in + -c) instcmd="$cpprog" shift continue;; @@ -79,7 +79,7 @@ while [ x"$1" != x ]; do shift continue;; - -s) stripcmd=$stripprog + -s) stripcmd="$stripprog" shift continue;; @@ -106,16 +106,16 @@ done if [ x"$src" = x ] then - echo "install: no input file specified" >&2 + echo "install-sh: no input file specified" >&2 exit 1 else - true + : fi if [ x"$dir_arg" != x ]; then dst=$src src="" - + if [ -d "$dst" ]; then instcmd=: chmodcmd="" @@ -125,23 +125,23 @@ if [ x"$dir_arg" != x ]; then else # Waiting for this to be detected by the "$instcmd $src $dsttmp" command -# might cause directories to be created, which would be especially bad +# might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. - if [ -f "$src" -o -d "$src" ] + if [ -f "$src" ] || [ -d "$src" ] then - true + : else - echo "install: $src does not exist" >&2 + echo "install-sh: $src does not exist" >&2 exit 1 fi - + if [ x"$dst" = x ] then - echo "install: no destination specified" >&2 + echo "install-sh: no destination specified" >&2 exit 1 else - true + : fi # If destination is a directory, append the input filename; if your system @@ -149,9 +149,9 @@ else if [ -d "$dst" ] then - dst=$dst/`basename "$src"` + dst="$dst"/`basename "$src"` else - true + : fi fi @@ -165,61 +165,61 @@ dstdir=`echo "$dst" | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` if [ ! -d "$dstdir" ]; then defaultIFS=' ' -IFS="${IFS-$defaultIFS}" +IFS="${IFS-${defaultIFS}}" -oIFS=$IFS +oIFS="${IFS}" # Some sh's can't handle IFS=/ for some reason. IFS='%' -set - `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'` -IFS=$oIFS +set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'` +IFS="${oIFS}" pathcomp='' while [ $# -ne 0 ] ; do - pathcomp=$pathcomp$1 + pathcomp="${pathcomp}${1}" shift - if [ ! -d "$pathcomp" ] ; + if [ ! -d "${pathcomp}" ] ; then - $mkdirprog "$pathcomp" + $mkdirprog "${pathcomp}" else - true + : fi - pathcomp=$pathcomp/ + pathcomp="${pathcomp}/" done fi if [ x"$dir_arg" != x ] then - $doit $instcmd "$dst" && + $doit $instcmd $dst && - if [ x"$chowncmd" != x ]; then $doit $chowncmd "$dst"; else true ; fi && - if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dst"; else true ; fi && - if [ x"$stripcmd" != x ]; then $doit $stripcmd "$dst"; else true ; fi && - if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dst"; else true ; fi + if [ x"$chowncmd" != x ]; then $doit $chowncmd "$dst"; else : ; fi && + if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dst"; else : ; fi && + if [ x"$stripcmd" != x ]; then $doit $stripcmd "$dst"; else : ; fi && + if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dst"; else : ; fi else # If we're going to rename the final executable, determine the name now. - if [ x"$transformarg" = x ] + if [ x"$transformarg" = x ] then dstfile=`basename "$dst"` else - dstfile=`basename "$dst" $transformbasename | + dstfile=`basename "$dst" $transformbasename | sed $transformarg`$transformbasename fi # don't allow the sed command to completely eliminate the filename - if [ x"$dstfile" = x ] + if [ x"$dstfile" = x ] then dstfile=`basename "$dst"` else - true + : fi -# Make a couple of temp file names in the proper directory. +# Make a temp file name in the proper directory. dsttmp=$dstdir/#inst.$$# rmtmp=$dstdir/#rm.$$# @@ -231,7 +231,7 @@ else # Move or copy the file name to the temp name - $doit $instcmd $src "$dsttmp" && + $doit $instcmd "$src" "$dsttmp" && # and set any options; do chmod last to preserve setuid bits @@ -239,10 +239,10 @@ else # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $instcmd $src $dsttmp" command. - if [ x"$chowncmd" != x ]; then $doit $chowncmd "$dsttmp";else true;fi && - if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dsttmp";else true;fi && - if [ x"$stripcmd" != x ]; then $doit $stripcmd "$dsttmp";else true;fi && - if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dsttmp";else true;fi && + if [ x"$chowncmd" != x ]; then $doit $chowncmd "$dsttmp"; else :;fi && + if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dsttmp"; else :;fi && + if [ x"$stripcmd" != x ]; then $doit $stripcmd "$dsttmp"; else :;fi && + if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dsttmp"; else :;fi && # Now remove or move any old file at destination location. We try this # two ways since rm can't unlink itself on some systems and the destination @@ -255,7 +255,7 @@ else $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null || $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null || { - echo "install: cannot unlink or rename $dstdir/$dstfile" >&2 + echo "install-sh: cannot unlink or rename $dstdir/$dstfile" >&2 (exit 1); exit } else @@ -265,10 +265,11 @@ else # Now rename the file to the real destination. - $doit $mvcmd "$dsttmp" "$dstdir/$dstfile" + $doit $mvcmd $dsttmp $dstdir/$dstfile fi && + # The final little trick to "correctly" pass the exit status to the exit trap. { -- 2.30.2