Changes5.004 Differences between 5.003 and 5.004
Changes5.005 Differences between 5.004 and 5.005
Changes5.6 Differences between 5.005 and 5.6
-check83.pl Check whether we are 8.3-friendly
configpm Produces lib/Config.pm
Configure Portability tool
configure.com Configure-equivalent for VMS
ext/threads/Changes ithreads
ext/threads/Makefile.PL ithreads
ext/threads/README ithreads
+ext/threads/t/basic.t ithreads
ext/threads/threads.h ithreads
ext/threads/threads.pm ithreads
ext/threads/threads.xs ithreads
-ext/threads/t/basic.t ithreads
ext/Time/HiRes/Changes Time::HiRes extension
ext/Time/HiRes/hints/dynixptx.pl Hint for Time::HiRes for named architecture
ext/Time/HiRes/hints/sco.pl Hints for Time::HiRes for named architecture
pod/splitpod Splits perlfunc into multiple pod pages
Policy_sh.SH Hold site-wide preferences between Configure runs.
Porting/apply Apply patches sent by mail
+Porting/check83.pl Check whether we are 8.3-friendly
Porting/config.sh Sample config.sh
Porting/config_H Sample config.h
Porting/Contract Social contract for contributed modules in Perl core
--- /dev/null
+#!/usr/local/bin/perl
+
+# Check whether there are naming conflicts when names are truncated
+# to the DOSish case-ignoring 8.3 format
+
+sub eight_dot_three {
+ my ($dir, $base, $ext) = ($_[0] =~ m!^(?:(.+)/)?([^/.]+)(?:\.([^/.]+))?$!);
+ $base = substr($base, 0, 8);
+ $ext = substr($ext, 0, 3) if defined $ext;
+ if (defined $dir) {
+ return ($dir, defined $ext ? "$dir/$base.$ext" : "$dir/$base");
+ } else {
+ return ('.', defined $ext ? "$base.$ext" : $base);
+ }
+}
+
+my %dir;
+
+if (open(MANIFEST, "MANIFEST")) {
+ while (<MANIFEST>) {
+ chomp;
+ s/\s.+//;
+ unless (-f) {
+ warn "$_: missing\n";
+ next;
+ }
+ if (tr/././ > 1) {
+ print "$_: more than one dot\n";
+ next;
+ }
+ my ($dir, $edt) = eight_dot_three($_);
+ ($dir, $edt) = map { lc } ($dir, $edt);
+ push @{$dir{$dir}->{$edt}}, $_;
+ }
+} else {
+ die "$0: MANIFEST: $!\n";
+}
+
+for my $dir (sort keys %dir) {
+ for my $edt (keys %{$dir{$dir}}) {
+ my @files = @{$dir{$dir}->{$edt}};
+ if (@files > 1) {
+ print "@files: directory $dir conflict $edt\n";
+ }
+ }
+}
+++ /dev/null
-sub eight_dot_three {
- my ($dir, $base, $ext) = ($_[0] =~ m!^(?:(.+)/)?([^/.]+)(?:\.([^/.]+))?$!);
- $base = substr($base, 0, 8);
- $ext = substr($ext, 0, 3) if defined $ext;
- if (defined $dir) {
- return ($dir, defined $ext ? "$dir/$base.$ext" : "$dir/$base");
- } else {
- return ('.', defined $ext ? "$base.$ext" : $base);
- }
-}
-
-my %dir;
-
-if (open(MANIFEST, "MANIFEST")) {
- while (<MANIFEST>) {
- chomp;
- s/\s.+//;
- unless (-f) {
- warn "$_: missing\n";
- next;
- }
- if (tr/././ > 1) {
- warn "$_: more than one dot\n";
- next;
- }
- my ($dir, $edt) = eight_dot_three($_);
- next if $edt eq $_;
- push @{$dir{$dir}->{$edt}}, $_;
- }
-} else {
- die "$0: MANIFEST: $!\n";
-}
-
-for my $dir (sort keys %dir) {
- for my $edt (keys %{$dir{$dir}}) {
- my @files = @{$dir{$dir}->{$edt}};
- if (@files > 1) {
- print "$dir $edt @files\n";
- }
- }
-}