Package filepath implements utility routines for manipulating filename paths
in a way compatible with the target operating system-defined file paths.
It is a modification of the original GO package path/filepath solving
severe errors in handling symbolic links.
The original package defines a function Clean that formally normalizes
a file path by eliminating .. and . entries. This is done WITHOUT
observing the actual file system. Although this is no problem for
the function itself, because it is designed to do so, it becomes a severe
problem for the whole package, because nearly all functions internally use
Clean to clean the path. As a consequence even functions like Join deliver
corrupted invalid results for valid inputs if the path incorporates
symbolic links to directories. Especially EvalSymlinks cannot be used
to evaluate paths to existing files, because Clean is internally used to
normalize content of symbolic links.
This package provides a set of functions that do not hamper the meaning
of path names keeping the rest of the original specification as far as
possible. Additionally some new functions (like Canonical) or alternate
versions of existing functions (like Split2) are provided
that offer a more useful specification than the original one.
So far, the windows operating system is NOT tested.