X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=Porting%2Fcheck83.pl;h=56989fa9e07a9720fc179c2bdc431347ba9f5b7f;hb=d152a4c4e9147bb67eee2f34c9e64eeb8fdbd1b8;hp=eb020023b3a6aad2c0493ca91c0753b3e3b026a2;hpb=81d555a2137e07e2adf29b74cd4e1878d01e07af;p=p5sagit%2Fp5-mst-13.2.git diff --git a/Porting/check83.pl b/Porting/check83.pl index eb02002..56989fa 100644 --- a/Porting/check83.pl +++ b/Porting/check83.pl @@ -11,6 +11,10 @@ use strict; # "no filename shall be longer than eight and a suffix if present # not longer than three". +# The 8-level depth rule is for older VMS systems that likely won't +# even be able to unpack the tarball if more than eight levels +# (including the top of the source tree) are present. + my %seen; my $maxl = 30; # make up a limit for a maximum filename length @@ -50,6 +54,10 @@ if (open(MANIFEST, "MANIFEST")) { print "more than one dot: $_\n"; next; } + if ((my $slashes = $_ =~ tr|\/|\/|) > 7) { + print "more than eight levels deep: $_\n"; + next; + } while (m!/|\z!g) { my ($dir, $edt) = eight_dot_three($`); next unless defined $dir; @@ -63,9 +71,9 @@ if (open(MANIFEST, "MANIFEST")) { for my $dir (sort keys %dir) { for my $edt (keys %{$dir{$dir}}) { - my @files = @{$dir{$dir}->{$edt}}; + my @files = @{$dir{$dir}{$edt}}; if (@files > 1) { - print "directory $dir conflict $edt: @files\n"; + print "conflict on filename $edt:\n", map " $_\n", @files; } } }