arg="$1"
shift
case "$arg" in
- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
+ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test
;;
*) qarg=$arg ;;
continue
;;
xcompiler)
- arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
- case "$arg" in
- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
- arg="\"$arg\""
- ;;
- esac
- compiler_flags="$compiler_flags $arg"
+ compiler_flags="$compiler_flags $qarg"
prev=
+ compile_command="$compile_command $qarg"
+ finalize_command="$finalize_command $qarg"
continue
;;
xlinker)
- arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
- case "$arg" in
- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
- arg="\"$arg\""
- ;;
- esac
- linker_flags="$linker_flags $arg"
- compiler_flags="$compiler_flags $wl$arg"
+ linker_flags="$linker_flags $qarg"
+ compiler_flags="$compiler_flags $wl$qarg"
prev=
+ compile_command="$compile_command $wl$qarg"
+ finalize_command="$finalize_command $wl$qarg"
continue
;;
*)
;;
-Wc,*)
- arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'`
+ args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'`
+ arg=
IFS="${IFS= }"; save_ifs="$IFS"; IFS=','
- for flag in $arg; do
+ for flag in $args; do
IFS="$save_ifs"
case "$flag" in
- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
+ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
flag="\"$flag\""
;;
esac
+ arg="$arg $wl$flag"
compiler_flags="$compiler_flags $flag"
done
IFS="$save_ifs"
- continue
+ arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
;;
-Wl,*)
- arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'`
+ args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'`
+ arg=
IFS="${IFS= }"; save_ifs="$IFS"; IFS=','
- for flag in $arg; do
+ for flag in $args; do
IFS="$save_ifs"
case "$flag" in
- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
+ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
flag="\"$flag\""
;;
esac
+ arg="$arg $wl$flag"
compiler_flags="$compiler_flags $wl$flag"
linker_flags="$linker_flags $flag"
done
IFS="$save_ifs"
- continue
+ arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
;;
-Xcompiler)
# to be aesthetically quoted because they are evaled later.
arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
case "$arg" in
- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
+ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
arg="\"$arg\""
;;
esac
# to be aesthetically quoted because they are evaled later.
arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
case "$arg" in
- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
+ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
arg="\"$arg\""
;;
esac
case "$mode" in
compile)
preargs="gcc -c"
+ preflag=
flag="-DVAR="
postargs="foo.c"
;;
link)
preargs="gcc -o hell -g -O"
- flag="-Wl,-someflag="
+ preflag=-Wl,
+ flag="-someflag="
postargs="foo.o"
;;
install)
preargs="install -c"
+ preflag=
flag="--something="
postargs="hell /usr/local/bin/hell"
;;
# Trivial.
$echo "= trying: no quoting"
- result=`$libtool -n --mode=$mode $preargs "${flag}test" $postargs` || status=1
+ result=`$libtool -n --mode=$mode $preargs ${preflag}"${flag}test" $postargs` || status=1
case "$result" in
- *"$preargs ${flag}test "*)
+ *"$preargs ${preflag}${flag}test "*)
$echo "= passed: $result"
;;
*)
# Metacharacters that should be backslashified.
for mchar in \\ \" \` \$; do
$echo "= trying: \\$mchar quoting"
- result=`$libtool -n --mode=$mode $preargs "${flag}${mchar}test${mchar}" $postargs` || status=1
+ result=`$libtool -n --mode=$mode $preargs ${preflag}"${flag}${mchar}test${mchar}" $postargs` || status=1
case "$result" in
- *"$preargs ${flag}\\${mchar}test\\${mchar} "*)
+ *"$preargs ${preflag}${flag}\\${mchar}test\\${mchar} "*)
$echo "= passed: $result"
;;
*)
"'" " " " "; do
$echo "= trying: \"$mchar\" quoting"
- result=`$libtool -n --mode=$mode $preargs "${flag}${mchar}test${mchar}" $postargs` || status=1
+ result=`$libtool -n --mode=$mode $preargs ${preflag}"${flag}${mchar}test${mchar}" $postargs` || status=1
case "$result" in
- *"$preargs \"${flag}${mchar}test${mchar}\" "*)
+ *"$preargs ${preflag}\"${flag}${mchar}test${mchar}\" "*)
$echo "= passed: $result"
;;
*)