X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Fcompiler%2Fmain%2FSysTools.lhs;h=6c9f2a51ae9c0adcb8f4a43a4acaec56cee7a92a;hb=95f1b72e5398f6d4b694ff7a62e73243dd9a6ee9;hp=576761b554fb793d5906928ea65fd151bb45e3ff;hpb=2a86ebc211c02271fa035f5834eb9f0b2e3bd6e5;p=ghc-hetmet.git diff --git a/ghc/compiler/main/SysTools.lhs b/ghc/compiler/main/SysTools.lhs index 576761b..6c9f2a5 100644 --- a/ghc/compiler/main/SysTools.lhs +++ b/ghc/compiler/main/SysTools.lhs @@ -656,10 +656,10 @@ cleanTempFiles verb = do fs <- readIORef v_FilesToClean cleanTempFilesExcept :: Int -> [FilePath] -> IO () cleanTempFilesExcept verb dont_delete - = do fs <- readIORef v_FilesToClean - let leftovers = filter (`notElem` dont_delete) fs - removeTmpFiles verb leftovers - writeIORef v_FilesToClean dont_delete + = do files <- readIORef v_FilesToClean + let (to_keep, to_delete) = partition (`elem` dont_delete) files + removeTmpFiles verb to_delete + writeIORef v_FilesToClean to_keep -- find a temporary name that doesn't already exist.