summaryrefslogtreecommitdiff
blob: 21baf9605d9ce7584df85aff4feac7a5abc93379 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
--- hashed-storage-0.5.9-orig/Storage/Hashed/Tree.hs	2011-10-09 07:47:55.000000000 +1100
+++ hashed-storage-0.5.9/Storage/Hashed/Tree.hs	2012-09-15 00:38:24.233669282 +1000
@@ -41,6 +41,7 @@
 import Data.List( union, sort )
 import Control.Monad( filterM, liftM )
 import Control.Applicative( (<$>) )
+import qualified Control.Exception ( catch, IOException )
 
 --------------------------------
 -- Tree, Blob and friends
@@ -195,7 +196,7 @@
         let
             subtree (name, sub) =
                 do let here = path `appendPath` name
-                   sub' <- (Just <$> unstub sub) `catch` \_ -> return Nothing
+                   sub' <- (Just <$> unstub sub) `Control.Exception.catch` \(_ :: Control.Exception.IOException) -> return Nothing
                    case sub' of
                      Nothing -> return $ Left [(here, treeHash t_, Nothing)]
                      Just sub -> do
@@ -204,10 +205,10 @@
                               Left problems -> Left problems
                               Right tree -> Right (name, SubTree tree)
             badBlob (_, f@(File (Blob s h))) =
-              fmap (/= h) (hashFunc f `catch` (\_ -> return NoHash))
+              fmap (/= h) (hashFunc f `Control.Exception.catch` (\(_ :: Control.Exception.IOException) -> return NoHash))
             badBlob _ = return False
             render (name, f@(File (Blob _ h))) = do
-              h' <- (Just <$> hashFunc f) `catch` \_ -> return Nothing
+              h' <- (Just <$> hashFunc f) `Control.Exception.catch` \(_ :: Control.Exception.IOException) -> return Nothing
               return (path `appendPath` name, h, h')
         subs <- mapM subtree [ x | x@(_, item) <- listImmediate t_, isSub item ]
         badBlobs <- filterM badBlob (listImmediate t) >>= mapM render
--- hashed-storage-0.5.9-orig/Storage/Hashed/Darcs.hs	2011-10-09 07:47:55.000000000 +1100
+++ hashed-storage-0.5.9/Storage/Hashed/Darcs.hs	2012-09-15 00:40:02.693038029 +1000
@@ -1,4 +1,4 @@
-{-# LANGUAGE BangPatterns #-}
+{-# LANGUAGE BangPatterns, ScopedTypeVariables #-}
 
 -- | A few darcs-specific utility functions. These are used for reading and
 -- writing darcs and darcs-compatible hashed trees.
@@ -10,6 +10,7 @@
 import System.Directory( doesFileExist )
 import Codec.Compression.GZip( decompress, compress )
 import Control.Applicative( (<$>) )
+import qualified Control.Exception ( catch, IOException )
 
 import qualified Data.ByteString.Char8 as BS8
 import qualified Data.ByteString.Lazy.Char8 as BL8
@@ -290,7 +291,7 @@
 
 darcsPristineRefs :: FileSegment -> IO [Hash]
 darcsPristineRefs fs = do
-  con <- (darcsParseDir <$> readSegment fs) `catch` \_ -> return []
+  con <- (darcsParseDir <$> readSegment fs) `Control.Exception.catch` \(_ :: Control.Exception.IOException) -> return []
   return $! [ hash | (_, _, _, hash) <- con, valid hash ]
     where valid NoHash = False
           valid _ = True