Make parser_free() be called slightly later,
[p5sagit/p5-mst-13.2.git] / installperl
index 76d299d..521e4f5 100755 (executable)
@@ -181,11 +181,8 @@ find(sub {
     if ("$File::Find::dir/$_" =~ m{^ext\b(.*)/([^/]+)\.pm$}) {
        my($path, $modname) = ($1,$2);
 
-       # strip trailing component first
-       $path =~ s{/[^/]*$}{};
-
-       # strip optional "/lib";
-       $path =~ s{/lib\b}{};
+       # strip to optional "/lib", or remove trailing component
+       $path =~ s{.*/lib\b}{} or $path =~ s{/[^/]*$}{};
 
        # strip any leading /
        $path =~ s{^/}{};
@@ -837,7 +834,8 @@ sub installlib {
     # ignore the Makefiles
     return if $name =~ /^makefile$/i;
     # ignore the test extensions
-    return if $dir =~ m{ext/XS/(?:APItest|Typemap)/};
+    return if $dir =~ m{\bXS/(?:APItest|Typemap)\b};
+    return if $name =~ m{\b(?:APItest|Typemap)\.pm$};
     # ignore the demo files
     return if $dir =~ /\bdemos?\b/;
 
@@ -862,7 +860,7 @@ sub installlib {
     }
 
     if (-f $_) {
-       if (/\.(?:al|ix)$/ && !($dir =~ m[^auto/(.*)$] && $archpms{$1})) {
+       if (/\.(?:al|ix)$/ && !($dir =~ m[^auto/(.*)$])) {
            $installlib = $installprivlib;
            #We're installing *.al and *.ix files into $installprivlib,
            #but we have to delete old *.al and *.ix files from the 5.000