Colin Watson <[email protected]> writes:

> This seems to work around it, but I haven't got my head around exactly
> how that code works yet so I haven't checked it in. In any case, it
> seems as though the right fix would need to involve improving the regex
> above - perhaps excluding opening parentheses before the colon, or
> something like that?

> -            qr/^$_$/;
> +            qr/^\Q$_\E$/;

That change will break handling of make variables in pattern rules, which
is why the change was made originally.

I think this is a better fix:

--- a/checks/rules
+++ b/checks/rules
@@ -247,10 +247,11 @@ while (<RULES>) {
         }
     }
 
-    if (/^([^\s:][^:]*):+(.*)/) {
+    if (!/^ifn?(eq|def)\s/ && /^([^\s:][^:]*):+(.*)/) {
        @current_targets = split (' ', $1);
         my @depends = map {
-            s/\$\([^\):]+:([^=]+)=([^\)]+)\1\)/$2.*/g;
+            $_ = quotemeta $_;
+            s/\\\$\\\([^\):]+\\:([^=]+)\\=([^\)]+)\1\\\)/$2.*/g;
             qr/^$_$/;
         } split (' ', $2);
        for my $target (@current_targets) {

-- 
Russ Allbery ([email protected])               <http://www.eyrie.org/~eagle/>


-- 
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]

Reply via email to