Ok to apply? Fixes so that stuff like -DFOO=\"bar\ baz\" is passed correctly. I assume that Thomas has checked that the patch works.
2005-05-27 Thomas Schwinge <[EMAIL PROTECTED]> * mig.in (prj_quote_sh): New shell funcion; copied from Paul Jarc's prjlibs. Use that function to properly quote strings in $cppflags that contain whitespace. Index: mig.in =================================================================== RCS file: /cvsroot/hurd/mig/mig.in,v retrieving revision 1.11 diff -u -r1.11 mig.in --- mig.in 2 May 2005 19:51:35 -0000 1.11 +++ mig.in 27 May 2005 18:44:55 -0000 @@ -43,8 +43,34 @@ migflags= files= -# If an argument to this shell script contains whitespace, -# then we will screw up. migcom will see it as multiple arguments. + +# prj_quote_sh() is from Paul Jarc's prjlibs available at +# <URL:http://code.dogmap.org/prjlibs/>. + +prj_quote_sh() { + case $1 in + '') echo "''";; + *[!%+,./0123456789:@ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz-]*) sed " +s/'/'\\\\''/g +1s/^/'/ +\$s/\$/'/ +" <<EOT +$1 +EOT + ;; + -*) cat <<EOT +$1 +EOT + ;; + *) echo "$1";; + esac +} + + +# If an argument to this shell script that will be passed to migcom contains +# whitespace, then we will screw up: migcom will see it as multiple arguments. +# Arguments that are only passed to $cpp are fine, though. +# `mig -DFOO=B\ A\ R ...' works. # # As a special hack, if -i is specified first we don't pass -user to migcom. # We do use the -user argument for the dependencies. @@ -93,17 +119,17 @@ -prefix | -subrprefix ) migflags="$migflags $1 $2"; shift; shift;; -MD ) sawMD=1; cppflags="$cppflags $1"; shift;; - -imacros | -isystem ) cppflags="$cppflags $1 $2"; shift; shift;; + -imacros | -isystem ) cppflags="$cppflags $1 `prj_quote_sh "$2"`"; shift; shift;; -cc) cpp="$2"; shift; shift;; -migcom) migcom="$2"; shift; shift;; - -* ) cppflags="$cppflags $1"; shift;; + -* ) cppflags="$cppflags `prj_quote_sh "$1"`"; shift;; * ) files="$files $1"; shift;; esac done for file in $files do - $cpp $cppflags "$file" | $migcom $migflags || exit + eval "$cpp $cppflags $file | $migcom $migflags || exit" if [ $sawMD ] then _______________________________________________ Bug-hurd mailing list Bug-hurd@gnu.org http://lists.gnu.org/mailman/listinfo/bug-hurd