Integrate #13154 from macperl; Remove comments.
[p5sagit/p5-mst-13.2.git] / lib / File / Spec / OS2.pm
1 package File::Spec::OS2;
2
3 use strict;
4 use vars qw(@ISA $VERSION);
5 require File::Spec::Unix;
6
7 $VERSION = '1.1';
8
9 @ISA = qw(File::Spec::Unix);
10
11 sub devnull {
12     return "/dev/nul";
13 }
14
15 sub case_tolerant {
16     return 1;
17 }
18
19 sub file_name_is_absolute {
20     my ($self,$file) = @_;
21     return scalar($file =~ m{^([a-z]:)?[\\/]}is);
22 }
23
24 sub path {
25     my $path = $ENV{PATH};
26     $path =~ s:\\:/:g;
27     my @path = split(';',$path);
28     foreach (@path) { $_ = '.' if $_ eq '' }
29     return @path;
30 }
31
32 my $tmpdir;
33 sub tmpdir {
34     return $tmpdir if defined $tmpdir;
35     my $self = shift;
36     my @dirlist = ( @ENV{qw(TMPDIR TEMP TMP)}, qw(/tmp /) );
37     {
38         no strict 'refs';
39         if (${"\cTAINT"}) { # Check for taint mode on perl >= 5.8.0
40             require Scalar::Util;
41             @dirlist = grep { ! Scalar::Util::tainted $_ } @dirlist;
42         }
43     }
44     foreach (@dirlist) {
45         next unless defined && -d;
46         $tmpdir = $_;
47         last;
48     }
49     $tmpdir = '' unless defined $tmpdir;
50     $tmpdir =~ s:\\:/:g;
51     $tmpdir = $self->canonpath($tmpdir);
52     return $tmpdir;
53 }
54
55 1;
56 __END__
57
58 =head1 NAME
59
60 File::Spec::OS2 - methods for OS/2 file specs
61
62 =head1 SYNOPSIS
63
64  require File::Spec::OS2; # Done internally by File::Spec if needed
65
66 =head1 DESCRIPTION
67
68 See File::Spec::Unix for a documentation of the methods provided
69 there. This package overrides the implementation of these methods, not
70 the semantics.