diff options
author | rillig <rillig> | 2008-11-18 21:17:53 +0000 |
---|---|---|
committer | rillig <rillig> | 2008-11-18 21:17:53 +0000 |
commit | dcb3cc51a2dfda001df80e37c1c2334592ec09b5 (patch) | |
tree | e1f3d21f64c2b54f8a400bf7fa2daf3d3bd69595 | |
parent | c55debd3d22311161da158df06a826d77cd8734f (diff) | |
download | pkgsrc-dcb3cc51a2dfda001df80e37c1c2334592ec09b5.tar.gz |
It's pretty tricky to get the bmake substitution right. At least if
you're a lazy programmer. Now the ${DISTNAME:S...} is interpreted
correctly.
-rw-r--r-- | pkgtools/pkglint/files/pkglint.pl | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/pkgtools/pkglint/files/pkglint.pl b/pkgtools/pkglint/files/pkglint.pl index 1e0eada4da6..f01907d0b92 100644 --- a/pkgtools/pkglint/files/pkglint.pl +++ b/pkgtools/pkglint/files/pkglint.pl @@ -1,5 +1,5 @@ #! @PERL@ -# $NetBSD: pkglint.pl,v 1.787 2008/11/18 19:39:49 rillig Exp $ +# $NetBSD: pkglint.pl,v 1.788 2008/11/18 21:17:53 rillig Exp $ # # pkglint - static analyzer and checker for pkgsrc packages @@ -6891,11 +6891,16 @@ sub checkfile_package_Makefile($$) { if (defined($distname) && defined($pkgname)) { $pkgname =~ s/\$\{DISTNAME\}/$distname/; - if ($pkgname =~ m"^(.*)\$\{DISTNAME:S(.)([^:]*)\2([^:]*)\2\}(.*)$") { + if ($pkgname =~ m"^(.*)\$\{DISTNAME:S(.)([^:]*)\2([^:]*)\2g?\}(.*)$") { my ($before, $separator, $old, $new, $after) = ($1, $2, $3, $4, $5); my $newname = $distname; + $old = quotemeta($old); + $old =~ s/^\\\^/^/; + $old =~ s/\\\$$/\$/; $newname =~ s/$old/$new/; + $opt_debug_misc and $pkgname_line->log_debug("old pkgname=$pkgname"); $pkgname = $before . $newname . $after; + $opt_debug_misc and $pkgname_line->log_debug("new pkgname=$pkgname"); } } |