[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: patch to fix missing quoting
From: |
Ralf Wildenhues |
Subject: |
Re: patch to fix missing quoting |
Date: |
Sat, 12 Mar 2005 19:07:43 +0100 |
User-agent: |
Mutt/1.5.6+20040907i |
Hi Per, Peter,
* Per Bothner wrote on Thu, Mar 10, 2005 at 06:27:08PM CET:
> Ralf Wildenhues wrote:
> >Sorry for self-reply.
> >
> >OK, better patch: does the quoting only in one place, plus complains
> >loudly and fails if $libobj contains special characters.
>
> Works for me.
Good. Applied to HEAD and branch-2-0.
* Peter O'Gorman wrote on Thu, Mar 10, 2005 at 03:12:59PM CET:
>
> This looks okay to me, can we have a test too though?
Yes, I am working on one. First the branch-1-5 backport below.
My question would be whether anyone objects to inclusion into
the "obsolete" branch. IMVHO it's arguable whether this is a
bugfix or new feature.
Thank you both for checking,
Ralf
2005-03-12 Per Bothner <address@hidden>,
Ralf Wildenhues <address@hidden>
Allow special characters in source file names. Will break unless
`-o target' is also given, which must not contain special characters.
En passant, fix source file quoting broken for cygwin/MSVC.
* ltmain.in (compile mode): Use new variable qsrcfile
for quoted source file name for compile $command. Fix missing
quotes for _c_o lockfile.
* NEWS: Update.
Index: NEWS
===================================================================
RCS file: /cvsroot/libtool/libtool/NEWS,v
retrieving revision 1.109.2.26
diff -u -r1.109.2.26 NEWS
--- NEWS 12 Feb 2005 13:54:43 -0000 1.109.2.26
+++ NEWS 12 Mar 2005 18:04:06 -0000
@@ -1,6 +1,8 @@
NEWS - list of user-visible changes between releases of GNU Libtool
New in 1.5.15a: 2005-??-??; CVS version 1.5.15a, Libtool team:
+* Allow shell special characters like `$' in source file names, but not
+ in object names, to enhance GCJ support.
* Bug Fixes.
New in 1.5.14: 2005-02-12; CVS version 1.5.13a, Libtool team:
Index: ltmain.in
===================================================================
RCS file: /cvsroot/libtool/libtool/Attic/ltmain.in,v
retrieving revision 1.334.2.63
diff -u -r1.334.2.63 ltmain.in
--- ltmain.in 12 Mar 2005 08:44:11 -0000 1.334.2.63
+++ ltmain.in 12 Mar 2005 17:36:06 -0000
@@ -757,6 +757,15 @@
esac
done
+ qlibobj=`$echo "X$libobj" | $Xsed -e "$sed_quote_subst"`
+ case $qlibobj in
+ *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
+ qlibobj="\"$qlibobj\"" ;;
+ esac
+ if test "X$libobj" != "X$qlibobj"; then
+ $echo "$modename: libobj name \`$libobj' may not contain shell special
characters."
+ exit $EXIT_FAILURE
+ fi
objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
if test "X$xdir" = "X$obj"; then
@@ -829,12 +838,17 @@
$run $rm $removelist
exit $EXIT_FAILURE
fi
- $echo $srcfile > "$lockfile"
+ $echo "$srcfile" > "$lockfile"
fi
if test -n "$fix_srcfile_path"; then
eval srcfile=\"$fix_srcfile_path\"
fi
+ qsrcfile=`$echo "X$srcfile" | $Xsed -e "$sed_quote_subst"`
+ case $qsrcfile in
+ *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
+ qsrcfile="\"$qsrcfile\"" ;;
+ esac
$run $rm "$libobj" "${libobj}T"
@@ -856,10 +870,10 @@
fbsd_hideous_sh_bug=$base_compile
if test "$pic_mode" != no; then
- command="$base_compile $srcfile $pic_flag"
+ command="$base_compile $qsrcfile $pic_flag"
else
# Don't build PIC code
- command="$base_compile $srcfile"
+ command="$base_compile $qsrcfile"
fi
if test ! -d "${xdir}$objdir"; then
@@ -939,9 +953,9 @@
if test "$build_old_libs" = yes; then
if test "$pic_mode" != yes; then
# Don't build PIC code
- command="$base_compile $srcfile"
+ command="$base_compile $qsrcfile"
else
- command="$base_compile $srcfile $pic_flag"
+ command="$base_compile $qsrcfile $pic_flag"
fi
if test "$compiler_c_o" = yes; then
command="$command -o $obj"