system-filepath 0.4.13.1 → 0.4.13.2
raw patch · 4 files changed
+20/−22 lines, 4 files
Files
- ChangeLog.md +4/−0
- lib/Filesystem/Path.hs +2/−9
- system-filepath.cabal +1/−1
- tests/FilesystemPathTests.hs +13/−12
ChangeLog.md view
@@ -1,3 +1,7 @@+## 0.4.13.2++* update `splitDirectories` function [#4](https://github.com/fpco/haskell-filesystem/pull/4)+ ## 0.4.13.1 Allow deepseq 1.4
lib/Filesystem/Path.hs view
@@ -301,18 +301,11 @@ splitDirectories p = rootName ++ dirNames ++ fileName where rootName = case pathRoot p of Nothing -> []- r -> [asFile (rootChunk r)]- dirNames = map asFile (pathDirectories p)+ r -> [empty { pathRoot = r }]+ dirNames = map (\d -> empty { pathDirectories = [d] }) (pathDirectories p) fileName = case (pathBasename p, pathExtensions p) of (Nothing, []) -> [] _ -> [filename p]- - asFile :: Chunk -> FilePath- asFile c = case parseFilename c of- (base, exts) -> empty- { pathBasename = base- , pathExtensions = exts- } ------------------------------------------------------------------------------- -- Extensions
system-filepath.cabal view
@@ -1,5 +1,5 @@ name: system-filepath-version: 0.4.13.1+version: 0.4.13.2 synopsis: High-level, byte-based file and directory path manipulations description: Hackage documentation generation is not reliable. For up to date documentation, please see: <http://www.stackage.org/package/system-filepath>. license: MIT
tests/FilesystemPathTests.hs view
@@ -353,18 +353,19 @@ test_SplitDirectories :: Test test_SplitDirectories = assertions "splitDirectories" $ do- let splitDirectories x = map toChar8 (P.splitDirectories (fromChar8 x))- - $expect $ equal (splitDirectories "") []- $expect $ equal (splitDirectories "/") ["/"]- $expect $ equal (splitDirectories "/a") ["/", "a"]- $expect $ equal (splitDirectories "/ab/cd") ["/", "ab", "cd"]- $expect $ equal (splitDirectories "/ab/cd/") ["/", "ab", "cd"]- $expect $ equal (splitDirectories "ab/cd") ["ab", "cd"]- $expect $ equal (splitDirectories "ab/cd/") ["ab", "cd"]- $expect $ equal (splitDirectories "ab/cd.txt") ["ab", "cd.txt"]- $expect $ equal (splitDirectories "ab/cd/.txt") ["ab", "cd", ".txt"]- $expect $ equal (splitDirectories "ab/./cd") ["ab", ".", "cd"]+ let splitDirectories x = P.splitDirectories (fromChar8 x)+ fromChar8' = map fromChar8++ $expect $ equal (splitDirectories "") (fromChar8' [])+ $expect $ equal (splitDirectories "/") (fromChar8' ["/"])+ $expect $ equal (splitDirectories "/a") (fromChar8' ["/", "a"])+ $expect $ equal (splitDirectories "/ab/cd") (fromChar8' ["/", "ab/", "cd"])+ $expect $ equal (splitDirectories "/ab/cd/") (fromChar8' ["/", "ab/", "cd/"])+ $expect $ equal (splitDirectories "ab/cd") (fromChar8' ["ab/", "cd"])+ $expect $ equal (splitDirectories "ab/cd/") (fromChar8' ["ab/", "cd/"])+ $expect $ equal (splitDirectories "ab/cd.txt") (fromChar8' ["ab/", "cd.txt"])+ $expect $ equal (splitDirectories "ab/cd/.txt") (fromChar8' ["ab/", "cd/", ".txt"])+ $expect $ equal (splitDirectories "ab/./cd") (fromChar8' ["ab/", ".", "cd"]) test_InvalidUtf8InDirectoryComponent :: Test test_InvalidUtf8InDirectoryComponent = assertions "invalid-utf8-in-directory-component" $ do