From 090d36cee8704f635fcbf9387cb4032d7687289f Mon Sep 17 00:00:00 2001
From: Thomas Tuegel <ttuegel@gmail.com>
Date: Thu, 15 Nov 2012 16:03:00 -0600
Subject: [PATCH] Accept multiple .mix file search paths for "hpc markup"
 (ticket #7419).

---
 utils/hpc/HpcFlags.hs   |    9 +++++----
 utils/hpc/Main.hs       |    2 +-
 utils/hpc/hpc-bin.cabal |    2 +-
 3 files changed, 7 insertions(+), 6 deletions(-)

diff --git a/utils/hpc/HpcFlags.hs b/utils/hpc/HpcFlags.hs
index f5d699a..adec55c 100644
--- a/utils/hpc/HpcFlags.hs
+++ b/utils/hpc/HpcFlags.hs
@@ -13,7 +13,7 @@ data Flags = Flags
   { outputFile		:: String
   , includeMods         :: Set.Set String
   , excludeMods         :: Set.Set String
-  , hpcDir		:: String
+  , hpcDirs     :: [String]
   , srcDirs		:: [String]
   , destDir		:: String
 
@@ -34,7 +34,7 @@ default_flags = Flags
   { outputFile		= "-"
   , includeMods         = Set.empty
   , excludeMods         = Set.empty
-  , hpcDir              = ".hpc"
+  , hpcDirs             = [".hpc"]
   , srcDirs             = []
   , destDir             = "."
 
@@ -83,7 +83,7 @@ includeOpt      = anArg "include"    "include MODULE and/or PACKAGE" "[PACKAGE:]
                 $ \ a f -> f { includeMods = a `Set.insert` includeMods f }
 
 hpcDirOpt        = anArg "hpcdir"     "sub-directory that contains .mix files" "DIR"
-                   (\ a f -> f { hpcDir = a })
+                   (\ a f -> f { hpcDirs = hpcDirs f ++ [a] })
                 .  infoArg "default .hpc [rarely used]"
 
 srcDirOpt       = anArg "srcdir"     "path to source directory of .hs files" "DIR"
@@ -130,8 +130,9 @@ unionModuleOpt = noArg "union"
 -------------------------------------------------------------------------------
 
 readMixWithFlags :: Flags -> Either String TixModule -> IO Mix
-readMixWithFlags flags modu = readMix [ dir ++  "/" ++ hpcDir flags
+readMixWithFlags flags modu = readMix [ dir ++  "/" ++ hpcDir
                                       | dir <- srcDirs flags 
+                                      , hpcDir <- hpcDirs flags
                                       ] modu
 
 -------------------------------------------------------------------------------
diff --git a/utils/hpc/Main.hs b/utils/hpc/Main.hs
index 419a519..41aea1e 100644
--- a/utils/hpc/Main.hs
+++ b/utils/hpc/Main.hs
@@ -132,7 +132,7 @@ version_plugin = Plugin { name = "version"
 		   }
 
 version_main :: Flags -> [String] -> IO ()
-version_main _ _ = putStrLn $ "hpc tools, version 0.6"
+version_main _ _ = putStrLn $ "hpc tools, version 0.7"
 
 
 ------------------------------------------------------------------------------
diff --git a/utils/hpc/hpc-bin.cabal b/utils/hpc/hpc-bin.cabal
index 30b9621..34e27f9 100644
--- a/utils/hpc/hpc-bin.cabal
+++ b/utils/hpc/hpc-bin.cabal
@@ -1,6 +1,6 @@
 Name: hpc-bin
 -- XXX version number:
-Version: 0.67
+Version: 0.70
 Copyright: XXX
 License: BSD3
 -- XXX License-File: LICENSE
-- 
1.7.8.6

