On Wed, 2010-11-10 at 16:15 +0100, Edward Welbourne wrote:
> > $ echo 'a b:; echo $@' | make -f - "a b"
> > echo a b
> > a b
> 
> and what happens if you
>   echo 'a b:; echo $@' | make -f - a
> ?  If that doesn't echo a, then you've broken all rules with more than
> one target ...
> 
> I expected your escaping to require
>   echo 'a\\ b:; echo $@' | make -f - 'a b'
> or
>   echo '"a b":; echo $@' | make -f - 'a b'
> or similar, so that the target's space is escaped.

Unfortunately Savannah's email program is not correctly translating the
bug content into email.

The actual example in the bug is:

        echo 'a\ b:; echo $@' | make -f - "a b"

You don't need double backslashes because it's inside single quotes.

However, this is not nearly the only problem with this suggestion.
Adding support for whitespace inside filenames is actually extremely
tricky, because almost all of make is really just text parsing, and all
that parsing is whitespace-based.

None of it will work correctly in the face of target names containing
whitespace.


_______________________________________________
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make

Reply via email to