
On 18/12/2010 03:30, Conrad Parker wrote:
On 3 December 2010 15:19, Conrad Parker
wrote: On 1 December 2010 15:03, Isaac Dupree
wrote: On 11/30/10 23:59, Conrad Parker wrote:
Hi,
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
* 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/"
Hi,
as there's been no further discussion on this during the requested period, I've marked the ticket for review.
This is a change in behaviour, so presumably there should be a version number bump too? Neil? Cheers, Simon