NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: bin/41998: /usr/bin/make: .for loop + ":" inside iter_var = bug
The following reply was made to PR bin/41998; it has been noted by GNATS.
From: David Laight <david%l8s.co.uk@localhost>
To: gnats-bugs%NetBSD.org@localhost
Cc:
Subject: Re: bin/41998: /usr/bin/make: .for loop + ":" inside iter_var = bug
Date: Sat, 5 Sep 2009 22:09:44 +0100
On Sat, Sep 05, 2009 at 08:15:01PM +0000, cheusov%tut.by@localhost wrote:
> >Number: 41998
> >Category: bin
> >Synopsis: /usr/bin/make: .for loop + ":" inside iter_var = bug
.for variables are substituted by converting to ${U:<text>} in order
to preserve the semantics of a variable substitution.
The <text> gets certain characters \ escaped (including ':').
The simpler test:
.if ${:Uaaa\:bbb} == ""
.endif
also fails.
The problem is that .if processing also strips escapes.
Fix - one I've been thinking about - is to put .for variables into the
symbol table, and only do the ${:U...} translation on text that is
saved for parsing later (ie the body of rules).
That saves processing most .for body text for these substitutions.
David
--
David Laight: david%l8s.co.uk@localhost
Home |
Main Index |
Thread Index |
Old Index