Repository : ssh://darcs.haskell.org//srv/darcs/packages/Cabal

On branch  : master

http://hackage.haskell.org/trac/ghc/changeset/4ae50a3d95e5205152bcf26308d4f098c864ab26

>---------------------------------------------------------------

commit 4ae50a3d95e5205152bcf26308d4f098c864ab26
Author: Duncan Coutts <[email protected]>
Date:   Mon Jun 14 21:35:36 2010 +0000

    Do not add lower case .hs files as modules in cabal init
    There's still something wrong with the recursive dir traversal.
    It fails in some large cases.

>---------------------------------------------------------------

 .../Distribution/Client/Init/Heuristics.hs         |    8 ++++++--
 1 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/cabal-install/Distribution/Client/Init/Heuristics.hs 
b/cabal-install/Distribution/Client/Init/Heuristics.hs
index 82f4745..19ec668 100644
--- a/cabal-install/Distribution/Client/Init/Heuristics.hs
+++ b/cabal-install/Distribution/Client/Init/Heuristics.hs
@@ -66,7 +66,9 @@ scanForModulesIn projectRoot srcRoot = scan srcRoot []
     scan dir hierarchy = do
         entries <- getDirectoryContents (projectRoot </> dir)
         (files, dirs) <- liftM partitionEithers (mapM (tagIsDir dir) entries)
-        let modules = catMaybes [ guessModuleName hierarchy file | file <- 
files ]
+        let modules = catMaybes [ guessModuleName hierarchy file
+                                | file <- files
+                                , isUpper (head file) ]
         recMods <- mapM (scanRecursive dir hierarchy) dirs
         return $ concat (modules : recMods)
     tagIsDir parent entry = do
@@ -83,9 +85,11 @@ scanForModulesIn projectRoot srcRoot = scan srcRoot []
         ext = case takeExtension entry of '.':e -> e; e -> e
     scanRecursive parent hierarchy entry
       | isUpper (head entry) = scan (parent </> entry) (entry : hierarchy)
-      | isLower (head entry) && entry /= "dist" =
+      | isLower (head entry) && not (ignoreDir entry) =
           scanForModulesIn projectRoot $ foldl (</>) srcRoot (entry : 
hierarchy)
       | otherwise = return []
+    ignoreDir ('.':_)  = True
+    ignoreDir dir      = dir `elem` ["dist", "_darcs"]
 
 -- Unfortunately we cannot use the version exported by 
Distribution.Simple.Program
 knownSuffixHandlers :: [(String,String)]



_______________________________________________
Cvs-libraries mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/cvs-libraries

Reply via email to