1package File::Spec::Epoc; 2 3use strict; 4use vars qw($VERSION @ISA); 5 6$VERSION = '3.48_03'; 7$VERSION =~ tr/_//; 8 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 a work in progress. ;-) 27 28=cut 29 30sub case_tolerant { 31 return 1; 32} 33 34=pod 35 36=over 4 37 38=item canonpath() 39 40No physical check on the filesystem, but a logical cleanup of a 41path. On UNIX eliminated successive slashes and successive "/.". 42 43=back 44 45=cut 46 47sub canonpath { 48 my ($self,$path) = @_; 49 return unless defined $path; 50 51 $path =~ s|/+|/|g; # xx////xx -> xx/xx 52 $path =~ s|(/\.)+/|/|g; # xx/././xx -> xx/xx 53 $path =~ s|^(\./)+||s unless $path eq "./"; # ./xx -> xx 54 $path =~ s|^/(\.\./)+|/|s; # /../../xx -> xx 55 $path =~ s|/\Z(?!\n)|| unless $path eq "/"; # xx/ -> xx 56 return $path; 57} 58 59=pod 60 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 72=head1 SEE ALSO 73 74See L<File::Spec> and L<File::Spec::Unix>. This package overrides the 75implementation of these methods, not the semantics. 76 77=cut 78 791; 80