Upgrade to PathTools 3.28_03.
[p5sagit/p5-mst-13.2.git] / lib / File / Spec / Epoc.pm
CommitLineData
fa6a1c44 1package File::Spec::Epoc;
2
3use strict;
07824bd1 4use vars qw($VERSION @ISA);
5
4a4ab19c 6$VERSION = '3.28_03';
486bcc50 7$VERSION = eval $VERSION;
07824bd1 8
fa6a1c44 9require File::Spec::Unix;
10@ISA = qw(File::Spec::Unix);
11
12=head1 NAME
13
14File::Spec::Epoc - methods for Epoc file specs
15
16=head1 SYNOPSIS
17
18 require File::Spec::Epoc; # Done internally by File::Spec if needed
19
20=head1 DESCRIPTION
21
22See File::Spec::Unix for a documentation of the methods provided
23there. This package overrides the implementation of these methods, not
24the semantics.
25
26This package is still work in progress ;-)
fa6a1c44 27
e021ab8e 28=cut
fa6a1c44 29
fa6a1c44 30sub case_tolerant {
31 return 1;
32}
33
e021ab8e 34=pod
35
36=over 4
37
59605c55 38=item canonpath()
fa6a1c44 39
40No physical check on the filesystem, but a logical cleanup of a
41path. On UNIX eliminated successive slashes and successive "/.".
42
e021ab8e 43=back
44
fa6a1c44 45=cut
46
47sub canonpath {
48 my ($self,$path) = @_;
bf7c0a3d 49 return unless defined $path;
fa6a1c44 50
2585f9a3 51 $path =~ s|/+|/|g; # xx////xx -> xx/xx
fa6a1c44 52 $path =~ s|(/\.)+/|/|g; # xx/././xx -> xx/xx
53 $path =~ s|^(\./)+||s unless $path eq "./"; # ./xx -> xx
54 $path =~ s|^/(\.\./)+|/|s; # /../../xx -> xx
2585f9a3 55 $path =~ s|/\Z(?!\n)|| unless $path eq "/"; # xx/ -> xx
fa6a1c44 56 return $path;
57}
58
72f15715 59=pod
60
99f36a73 61=head1 AUTHOR
62
63o.flebbe@gmx.de
64
65=head1 COPYRIGHT
66
67Copyright (c) 2004 by the Perl 5 Porters. All rights reserved.
68
69This program is free software; you can redistribute it and/or modify
70it under the same terms as Perl itself.
71
fa6a1c44 72=head1 SEE ALSO
73
72f15715 74See L<File::Spec> and L<File::Spec::Unix>. This package overrides the
75implementation of these methods, not the semantics.
fa6a1c44 76
77=cut
78
791;