diff options
author | 2012-03-10 11:38:38 -0400 | |
---|---|---|
committer | 2012-03-10 11:38:38 -0400 | |
commit | f9d44cccd993926ce0180437ebcb6d08fdb1efd7 (patch) | |
tree | e2d6ac9bc8e6af956212f3796c2352289154130f | |
parent | 10d9315b59ce1c0d1be91ab7034f87e1f58a0710 (diff) |
perhaps more clear type
-rw-r--r-- | Locations.hs | 4 | ||||
-rw-r--r-- | Utility/FileSystemEncoding.hs | 8 |
2 files changed, 6 insertions, 6 deletions
diff --git a/Locations.hs b/Locations.hs index 2e3372551..d263f3d2a 100644 --- a/Locations.hs +++ b/Locations.hs @@ -218,12 +218,12 @@ hashDirMixed :: Hasher hashDirMixed k = addTrailingPathSeparator $ take 2 dir </> drop 2 dir where dir = take 4 $ display_32bits_as_dir =<< [a,b,c,d] - ABCD (a,b,c,d) = md5 $ Str $ encodeFilePath $ show k + ABCD (a,b,c,d) = md5 $ encodeFilePath $ show k hashDirLower :: Hasher hashDirLower k = addTrailingPathSeparator $ take 3 dir </> drop 3 dir where - dir = take 6 $ md5s $ Str $ encodeFilePath $ show k + dir = take 6 $ md5s $ encodeFilePath $ show k {- modified version of display_32bits_as_hex from Data.Hash.MD5 - Copyright (C) 2001 Ian Lynagh diff --git a/Utility/FileSystemEncoding.hs b/Utility/FileSystemEncoding.hs index fe4202a75..cf1a6a731 100644 --- a/Utility/FileSystemEncoding.hs +++ b/Utility/FileSystemEncoding.hs @@ -12,6 +12,7 @@ import qualified GHC.IO.Encoding as Encoding import Foreign.C import System.IO import System.IO.Unsafe +import qualified Data.Hash.MD5 as MD5 {- Sets a Handle to use the filesystem encoding. This causes data - written or read from it to be encoded/decoded the same @@ -28,8 +29,7 @@ withFilePath :: FilePath -> (CString -> IO a) -> IO a withFilePath fp f = Encoding.getFileSystemEncoding >>= \enc -> GHC.withCString enc fp f -{- Encodes a FilePath into a String of encoded bytes, applying the - - filesystem encoding. +{- Encodes a FilePath into a Str, applying the filesystem encoding. - - This use of unsafePerformIO is belived to be safe; GHC's interface - only allows doing this conversion with CStrings, and the CString buffer @@ -37,7 +37,7 @@ withFilePath fp f = Encoding.getFileSystemEncoding - effects. -} {-# NOINLINE encodeFilePath #-} -encodeFilePath :: FilePath -> String -encodeFilePath fp = unsafePerformIO $ do +encodeFilePath :: FilePath -> MD5.Str +encodeFilePath fp = MD5.Str $ unsafePerformIO $ do enc <- Encoding.getFileSystemEncoding GHC.withCString enc fp $ GHC.peekCString Encoding.char8 |