Thu Feb 11 11:52:51 JST 2010  Conrad Parker <conrad@metadecks.org>
  * normalise: Handle trailing "." in path names
  
  For example, (normalise "../.") was returning "../.", now ".."
  
  This patch modifies dropDots such that the check for (".":[]) only
  occurs once for the path, after which a driver function dropDots' is
  used which skips this check. Hence "." can be removed from the
  end of a longer path, but a path of just "." is unchanged.

New patches:

[normalise: Handle trailing "." in path names
Conrad Parker <conrad@metadecks.org>**20100211025251
 Ignore-this: 290b1f6bfde981cfa26dd1c9019be5b5
 
 For example, (normalise "../.") was returning "../.", now ".."
 
 This patch modifies dropDots such that the check for (".":[]) only
 occurs once for the path, after which a driver function dropDots' is
 used which skips this check. Hence "." can be removed from the
 end of a longer path, but a path of just "." is unchanged.
] hunk ./System/FilePath/Internal.hs 700
         propSep (x:xs) = x : propSep xs
         propSep [] = []
 
-        dropDots acc (".":xs) | not $ null xs = dropDots acc xs
-        dropDots acc (x:xs) = dropDots (x:acc) xs
-        dropDots acc [] = reverse acc
+        dropDots acc ["."] = ["."]
+        dropDots acc xs = dropDots' acc xs
+
+        dropDots' acc (".":xs) = dropDots' acc xs
+        dropDots' acc (x:xs) = dropDots' (x:acc) xs
+        dropDots' acc [] = reverse acc
 
 normaliseDrive :: FilePath -> FilePath
 normaliseDrive drive | isPosix = drive

Context:

[lower base requirement down to base-2
Sergei Trofimovich <slyfox@community.haskell.org>**20091216213421
 Ignore-this: 51811f50ae13b1772cda99d532f72372
 At least ghc-6.6.1 is able to build it without problems.
 (package can be used in cabal-1.8, which is known to work
 on ghc-6.4+)
] 
[Bump the version number
Ian Lynagh <igloo@earth.li>**20100119132830] 
[correct punctuation in Synopsis (#3762)
Simon Marlow <marlowsd@gmail.com>**20091216095818
 Ignore-this: 4e3f848e771344db079cd363caba0082
] 
[UNDO: The current directory is ".", not "" (GHC bug #2034) (patch version 2)
Simon Marlow <marlowsd@gmail.com>**20091104122943
 Ignore-this: 93c3643daca557cead63e3853fbd30e0
 
 rolling back accidentally pushed patch:
 
 Wed Nov  4 10:50:57 GMT 2009  Simon Marlow <marlowsd@gmail.com>
   * The current directory is ".", not "" (GHC bug #2034) (patch version 2)
] 
[The current directory is ".", not "" (GHC bug #2034) (patch version 2)
Simon Marlow <marlowsd@gmail.com>**20091104105057
 Ignore-this: 4042cd0afb71d8c69a98d0d7c4da99bb
   
 So now
         splitFileName "foo" = ("./", "foo")
 
 which gives us the additional property that
 
 > Valid x => isValid (fst (splitFileName x))
 
 This property is important, because it means that we can pass the
 result of takeDirectory to any of the functions in System.Directory,
 whereas previously we would have to check for the empty case first.
 
 After discussion on the libraries list, I removed the second part of
 the original change:
 
         "." </> x = x
 
 This small bit of normalisation was there to ensure that the property
 
 > Valid x => uncurry </> (splitFileName x) == x
 
 still held.  However, it was arguably inconsistent (see the
 discussion).  Now this property has an exception:
 
 > Valid x => uncurry (</>) (splitFileName x) == x || fst (splitFileName x) == "./"
 
 This is a small price to pay to gain the new property above.
] 
[Bump version to 1.1.0.3
Ian Lynagh <igloo@earth.li>**20090920141902] 
[Fix "Cabal check" warnings
Ian Lynagh <igloo@earth.li>**20090811215908] 
[TAG 2009-06-25
Ian Lynagh <igloo@earth.li>**20090625160245] 
Patch bundle hash:
97b3e6aa900d1bae00b88fed07ce61fe73219807
