Merge pull request #19 from thomie/splitDirectories
authorNeil Mitchell <ndmitchell@gmail.com>
Sun, 26 Oct 2014 21:24:14 +0000 (21:24 +0000)
committerNeil Mitchell <ndmitchell@gmail.com>
Sun, 26 Oct 2014 21:24:14 +0000 (21:24 +0000)
Refactor splitDirectories

1  2 
System/FilePath/Internal.hs

@@@ -641,18 -640,10 +641,10 @@@ splitPath x = [drive | drive /= ""] ++ 
  -- >          splitDirectories "test/file" == ["test","file"]
  -- >          splitDirectories "/test/file" == ["/","test","file"]
  -- > Windows: splitDirectories "C:\\test\\file" == ["C:\\", "test", "file"]
 --- > Valid x => joinPath (splitDirectories x) `equalFilePath` x
 +-- > Posix:   Valid x => joinPath (splitDirectories x) `equalFilePath` x
  -- > splitDirectories "" == []
  splitDirectories :: FilePath -> [FilePath]
- splitDirectories path =
-         if hasDrive path then head pathComponents : f (tail pathComponents)
-         else f pathComponents
-     where
-         pathComponents = splitPath path
-         f = map g
-         g x = if null res then x else res
-             where res = takeWhile (not . isPathSeparator) x
+ splitDirectories = map dropTrailingPathSeparator . splitPath
  
  
  -- | Join path elements back together.