packages feed

silently 1.1.3 → 1.1.4

raw patch · 4 files changed

+46/−50 lines, 4 files

Files

silently.cabal view
@@ -1,5 +1,5 @@ name: silently-version: 1.1.3+version: 1.1.4 cabal-version: >= 1.2 build-type: Simple license: BSD3
src/other/System/IO/Silently.hs view
@@ -32,11 +32,7 @@   prepareAndRun (_,tmpHandle) = go handles     where       go []     = action-      go (h:hs) = bracket (do old <- hDuplicate h-                              hDuplicateTo tmpHandle h-                              return old)-                          (\old -> hDuplicateTo old h)-                          (\_   -> go hs)+      go hs = goBracket go tmpHandle hs   getTempOrCurrentDirectory :: IO String@@ -61,18 +57,20 @@     removeFile tmpFile   prepareAndRun (tmpFile,tmpHandle) = go handles     where-      go []     = do-                 a <- action-                 hClose tmpHandle-                 str <- readFile tmpFile-                 forceList str-                 return (str,a)-      go (h:hs) = bracket (do old <- hDuplicate h-                              hDuplicateTo tmpHandle h-                              return old)-                          (\old -> hDuplicateTo old h)-                          (\_   -> go hs)+      go [] = do+              a <- action+              hClose tmpHandle+              str <- readFile tmpFile+              forceList str+              return (str,a)+      go hs = goBracket go tmpHandle hs  forceList [] = return () forceList (x:xs) = forceList xs +goBracket :: ([Handle] -> IO a) -> Handle -> [Handle] -> IO a+goBracket go tmpHandle (h:hs) = bracket (do old <- hDuplicate h+                                            hDuplicateTo tmpHandle h+                                            return old)+                                        (\old -> hDuplicateTo old h >> hClose old)+                                        (\_   -> go hs)
src/unix/System/IO/Silently.hs view
@@ -24,12 +24,8 @@  where   prepareAndRun tmpHandle = go handles     where-      go []     = action-      go (h:hs) = bracket (do old <- hDuplicate h-                              hDuplicateTo tmpHandle h-                              return old)-                          (\old -> hDuplicateTo old h)-                          (\_   -> go hs)+      go [] = action+      go hs = goBracket go tmpHandle hs   getTempOrCurrentDirectory :: IO String@@ -54,13 +50,16 @@     removeFile tmpFile   prepareAndRun (tmpFile,tmpHandle) = go handles     where-      go []     = do-                 a <- action-                 hClose tmpHandle-                 str <- readFile tmpFile-                 return (str,a)-      go (h:hs) = bracket (do old <- hDuplicate h-                              hDuplicateTo tmpHandle h-                              return old)-                          (\old -> hDuplicateTo old h)-                          (\_   -> go hs)+      go [] = do+              a <- action+              hClose tmpHandle+              str <- readFile tmpFile+              return (str,a)+      go hs = goBracket go tmpHandle hs++goBracket :: ([Handle] -> IO a) -> Handle -> [Handle] -> IO a+goBracket go tmpHandle (h:hs) = bracket (do old <- hDuplicate h+                                            hDuplicateTo tmpHandle h+                                            return old)+                                        (\old -> hDuplicateTo old h >> hClose old)+                                        (\_   -> go hs)
src/windows/System/IO/Silently.hs view
@@ -24,12 +24,8 @@  where   prepareAndRun tmpHandle = go handles     where-      go []     = action-      go (h:hs) = bracket (do old <- hDuplicate h-                              hDuplicateTo tmpHandle h-                              return old)-                          (\old -> hDuplicateTo old h)-                          (\_   -> go hs)+      go [] = action+      go hs = goBracket go tmpHandle hs   getTempOrCurrentDirectory :: IO String@@ -54,17 +50,20 @@     removeFile tmpFile   prepareAndRun (tmpFile,tmpHandle) = go handles     where-      go []     = do-                 a <- action-                 hClose tmpHandle-                 str <- readFile tmpFile-                 forceList str-                 return (str,a)-      go (h:hs) = bracket (do old <- hDuplicate h-                              hDuplicateTo tmpHandle h-                              return old)-                          (\old -> hDuplicateTo old h)-                          (\_   -> go hs)+      go [] = do+              a <- action+              hClose tmpHandle+              str <- readFile tmpFile+              forceList str+              return (str,a)+      go hs = goBracket go tmpHandle hs  forceList [] = return () forceList (x:xs) = forceList xs++goBracket :: ([Handle] -> IO a) -> Handle -> [Handle] -> IO a+goBracket go tmpHandle (h:hs) = bracket (do old <- hDuplicate h+                                            hDuplicateTo tmpHandle h+                                            return old)+                                        (\old -> hDuplicateTo old h >> hClose old)+                                        (\_   -> go hs)