On Thu, 2008-03-20 at 09:24 -0700, Gert Jan van Loo wrote:
> I assume this 'feature' will not be removed as it will break the
> makefile of all simple souls who are not competent enough to add a
> space in the right place.

Actually, it won't be removed because to do so would contravene the
POSIX standard for "make", which requires:

>         When an escaped <newline> (one preceded by a backslash) is
>         found anywhere in the makefile except in a command line, it
>         shall be replaced, along with any leading white space on the
>         following line, with a single <space>. When an escaped
>         <newline> is found in a command line in a makefile, the
>         command line shall contain the backslash, the <newline>, and
>         the next line, except that the first character of the next
>         line shall not be included if it is a <tab>.

To the best of my knowledge, GNU make implements this behavior exactly.

> I DO suggest to add this to the manual somewhere and explain in more
> details the processing which takes place when a backslash is at the
> end of a line: It adds one space if it is missing and it reduces
> multiple spaces and tabs to a single space.

There's a whole section dedicated to backslash/newline handling in
recipes, but you're right, there's nothing explicitly said about how
whitespace is handled outside of recipes.

> I also suggest you specify how to get rid of these nasty spaces in
> case anybody does not want them.

Erm... don't use backslash/newline in those situations, but just write
the string as one long line?

I'm not aware of any other robust way to avoid the problem.


Cheers!

-- 
-----------------------------------------------------------------------------
 Paul D. Smith <[EMAIL PROTECTED]>                 http://make.mad-scientist.us
 "Please remain calm--I may be mad, but I am a professional."--Mad Scientist




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

Reply via email to