MM_Unix patch for use under CVS
Ulrich Pfeifer [Fri, 11 Apr 1997 12:59:00 +0000 (14:59 +0200)]
Subject: Re: MM_Unix patch

>>>>> "Nick" == Nick Ing-Simmons <nik@tiuk.ti.com> writes:

    Nick> Seems a little strong did you mean /^\.#/ ?

No. Every '#' in a Makefile file list will break the list:

Makefile
 ,-----
 | FILES = foo \
 |         bar#bazz \
 |         bizz
 |
 | all:
 |  @echo $(FILES)
 `-----
Shell
 ,-----
 | % make -f ~/tmp/Makefile
 | foo bar
 `-----

Below is a more complete patch.

p5p-msgid: yfmd8s1vhpn.fsf@ls6.informatik.uni-dortmund.de

lib/ExtUtils/MM_Unix.pm

index 928e4ce..693a6a9 100644 (file)
@@ -1166,9 +1166,11 @@ sub init_dirscan {       # --- File and Directory Lists (.xs .pm .pod etc)
     local(%pm); #the sub in find() has to see this hash
     $ignore{'test.pl'} = 1;
     $ignore{'makefile.pl'} = 1 if $Is_VMS;
+  FILE:
     foreach $name ($self->lsdir($self->curdir)){
        next if $name eq $self->curdir or $name eq $self->updir or $ignore{$name};
        next unless $self->libscan($name);
+      next FILE if $name =~ /\#/;
        if (-d $name){
            next if -l $name; # We do not support symlinks at all
            $dir{$name} = $name if (-f $self->catfile($name,"Makefile.PL"));
@@ -1242,6 +1244,7 @@ sub init_dirscan {        # --- File and Directory Lists (.xs .pm .pod etc)
                }
                return;
            }
+          return if /\#/;
            my($path, $prefix) = ($File::Find::name, '$(INST_LIBDIR)');
            my($striplibpath,$striplibname);
            $prefix =  '$(INST_LIB)' if (($striplibpath = $path) =~ s:^(\W*)lib\W:$1:i);