[darcs patch] filepath: normalise trailing dot
conrad at metadecks.org
Sat Dec 18 04:30:46 CET 2010
On 3 December 2010 15:19, Conrad Parker <conrad at metadecks.org> wrote:
> On 1 December 2010 15:03, Isaac Dupree <ml at isaac.cedarswampstudios.org> wrote:
>> On 11/30/10 23:59, Conrad Parker wrote:
>>> I've re-opened ticket #3975 related to this proposal.
>>> It's a fairly minor patch which ensures that filepaths containing a
>>> trailing dot are normalised consistently, ie. the path "foo/bar/." is
>>> normalised to "foo/bar"
>> Normalize to "foo/bar/" so that it still forces to resolve symlinks and
>> yield a directory. For example, lstat(), -- you can see the difference by
>> shell `stat foo/bar/` and `stat foo/bar` when bar is a symlink -- or
>> unlink()/rm. (Or when bar is a plain non-directory file: slash-->deserved
>> error.) I'm not aware that removing the dot itself has any effect here,
>> though. (counterexamples welcome).
> Good point: it would be better to normalise "foo/bar/." to "foo/bar/"
> not "foo/bar"
> I've uploaded a new patch for this ticket which retains the trailing
> pathSeparator for directories.
> Ticket: http://hackage.haskell.org/trac/ghc/ticket/3975
> Patch v2 description:
> Fri Dec 3 15:04:44 JST 2010 Conrad Parker <conrad at metadecks.org>
> * normalise trailing dot
> This is version 2 of a patch for ticket #3975
> This patch modifles normalise to treat paths with a trailing dot as the
> corresponding directory: the trailing . is stripped, and the pathSeparator
> is appended to the result of joining path components.
> The special case of all path components being "." is handled first, replacing
> the existing special case test for paths with a leading dot. Dots are now
> dropped consistently for all path components.
> Additional tests are provided for:
> normalise "./." == "./"
> normalise "bob/fred/." == "bob/fred/"
as there's been no further discussion on this during the requested
period, I've marked the ticket for review.
More information about the Libraries