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