[project @ 2003-07-23 13:08:55 by simonpj]
[ghc-hetmet.git] / ghc / compiler / main / SysTools.lhs
index 576761b..6c9f2a5 100644 (file)
@@ -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.