Remove MacOS classic support from File::Basename.
authorNicholas Clark <nick@ccl4.org>
Mon, 21 Jun 2010 20:09:52 +0000 (21:09 +0100)
committerNicholas Clark <nick@ccl4.org>
Wed, 23 Jun 2010 07:52:45 +0000 (08:52 +0100)
ExtUtils::MakeMaker removed MacOS support in 6.25, merged to blead in December
2004, so this code is vestigial, and a small runtime penalty.

lib/File/Basename.pm
lib/File/Basename.t

index d842844..da9e07b 100644 (file)
@@ -54,7 +54,7 @@ our(@ISA, @EXPORT, $VERSION, $Fileparse_fstype, $Fileparse_igncase);
 require Exporter;
 @ISA = qw(Exporter);
 @EXPORT = qw(fileparse fileparse_set_fstype basename dirname);
-$VERSION = "2.78";
+$VERSION = "2.79";
 
 fileparse_set_fstype($^O);
 
@@ -131,10 +131,6 @@ sub fileparse {
     $dirpath = './' unless $dirpath;   # Can't be 0
     $dirpath .= '/' unless $dirpath =~ m#[\\/]\z#;
   }
-  elsif ($type eq "MacOS") {
-    ($dirpath,$basename) = ($fullname =~ /^(.*:)?(.*)/s);
-    $dirpath = ':' unless $dirpath;
-  }
   elsif ($type eq "AmigaOS") {
     ($dirpath,$basename) = ($fullname =~ /(.*[:\/])?(.*)/s);
     $dirpath = './' unless $dirpath;
@@ -296,13 +292,6 @@ sub dirname {
     if ($type eq 'VMS') { 
         $dirname ||= $ENV{DEFAULT};
     }
-    elsif ($type eq 'MacOS') {
-       if( !length($basename) && $dirname !~ /^[^:]+:\z/) {
-            _strip_trailing_sep($dirname);
-           ($basename,$dirname) = fileparse $dirname;
-       }
-       $dirname .= ":" unless $dirname =~ /:\z/;
-    }
     elsif (grep { $type eq $_ } qw(MSDOS DOS MSWin32 OS2)) { 
         _strip_trailing_sep($dirname);
         unless( length($basename) ) {
@@ -331,10 +320,7 @@ sub dirname {
 sub _strip_trailing_sep  {
     my $type = $Fileparse_fstype;
 
-    if ($type eq 'MacOS') {
-        $_[0] =~ s/([^:]):\z/$1/s;
-    }
-    elsif (grep { $type eq $_ } qw(MSDOS DOS MSWin32 OS2)) { 
+    if (grep { $type eq $_ } qw(MSDOS DOS MSWin32 OS2)) { 
         $_[0] =~ s/([^:])[\\\/]*\z/$1/;
     }
     else {
@@ -353,7 +339,7 @@ Normally File::Basename will assume a file path type native to your current
 operating system (ie. /foo/bar style on Unix, \foo\bar on Windows, etc...).
 With this function you can override that assumption.
 
-Valid $types are "MacOS", "VMS", "AmigaOS", "OS2", "RISCOS",
+Valid $types are "VMS", "AmigaOS", "OS2", "RISCOS",
 "MSWin32", "DOS" (also "MSDOS" for backwards bug compatibility),
 "Epoc" and "Unix" (all case-insensitive).  If an unrecognized $type is
 given "Unix" will be assumed.
@@ -370,7 +356,7 @@ call only.
 
 BEGIN {
 
-my @Ignore_Case = qw(MacOS VMS AmigaOS OS2 RISCOS MSWin32 MSDOS DOS Epoc);
+my @Ignore_Case = qw(VMS AmigaOS OS2 RISCOS MSWin32 MSDOS DOS Epoc);
 my @Types = (@Ignore_Case, qw(Unix));
 
 sub fileparse_set_fstype {
index 0d3b633..627d2f4 100644 (file)
@@ -5,7 +5,7 @@ BEGIN {
     @INC = '../lib';
 }
 
-use Test::More tests => 64;
+use Test::More tests => 49;
 
 BEGIN { use_ok 'File::Basename' }
 
@@ -76,34 +76,6 @@ can_ok( __PACKAGE__, qw( basename fileparse dirname fileparse_set_fstype ) );
     is( dirname("\\foo\\bar\\baz"), "\\foo\\bar" );
 }
 
-
-### Testing MacOS
-{
-    is(fileparse_set_fstype('MacOS'), 'MSDOS', 'set fstype to MacOS');
-
-    my($base,$path,$type) = fileparse('virgil:aeneid:draft.book7',
-                                      '\.book\d+');
-    is($base, 'draft');
-    is($path, 'virgil:aeneid:');
-    is($type, '.book7');
-
-    is(basename(':arma:virumque:cano.trojae'), 'cano.trojae');
-    is(dirname(':arma:virumque:cano.trojae'),  ':arma:virumque:');
-    is(dirname(':arma:virumque:'), ':arma:');
-    is(dirname(':arma:virumque'), ':arma:');
-    is(dirname(':arma:'), ':');
-    is(dirname(':arma'),  ':');
-    is(dirname('arma:'), 'arma:');
-    is(dirname('arma'), ':');
-    is(dirname(':'), ':');
-
-
-    # Check quoting of metacharacters in suffix arg by basename()
-    is(basename(':arma:virumque:cano.trojae','.trojae'), 'cano');
-    is(basename(':arma:virumque:cano_trojae','.trojae'), 'cano_trojae');
-}
-
-
 ### extra tests for a few specific bugs
 {
     fileparse_set_fstype 'DOS';