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