import qualified HpcSet as Set
-showtix_options =
- [ excludeOpt,includeOpt,hpcDirOpt
- , outputOpt
- ]
-
+showtix_options :: FlagOptSeq
+showtix_options
+ = excludeOpt
+ . includeOpt
+ . srcDirOpt
+ . hpcDirOpt
+ . outputOpt
+
+showtix_plugin :: Plugin
showtix_plugin = Plugin { name = "show"
, usage = "[OPTION] .. <TIX_FILE> [<MODULE> [<MODULE> ..]]"
, options = showtix_options
}
-
-showtix_main flags [] = hpcError showtix_plugin $ "no .tix file or executable name specified"
+showtix_main :: Flags -> [String] -> IO ()
+showtix_main _ [] = hpcError showtix_plugin $ "no .tix file or executable name specified"
showtix_main flags (prog:modNames) = do
let hpcflags1 = flags
{ includeMods = Set.fromList modNames
case optTixs of
Nothing -> hpcError showtix_plugin $ "could not read .tix file : " ++ prog
Just (Tix tixs) -> do
- let modules = map tixModuleName tixs
-
- mixs <- sequence
- [ readMix (hpcDirs hpcflags1) modName -- hard wired to .hpc for now
- | modName <- modules
- , allowModule hpcflags1 modName
+ tixs_mixs <- sequence
+ [ do mix <- readMixWithFlags hpcflags1 (Right tix)
+ return $ (tix,mix)
+ | tix <- tixs
+ , allowModule hpcflags1 (tixModuleName tix)
]
let rjust n str = take (n - length str) (repeat ' ') ++ str
sequence_ [ sequence_ [ putStrLn (rjust 5 (show ix) ++ " " ++
rjust 10 (show count) ++ " " ++
ljust 20 modName ++ " " ++ rjust 20 (show pos) ++ " " ++ show lab)
- | (count,ix,(pos,lab)) <- zip3 tixs [(0::Int)..] entries
+ | (count,ix,(pos,lab)) <- zip3 tixs' [(0::Int)..] entries
]
- | ( TixModule modName hash _ tixs
- , Mix _file _timestamp _hash _tab entries
- ) <- zip tixs mixs
+ | ( TixModule modName _hash1 _ tixs'
+ , Mix _file _timestamp _hash2 _tab entries
+ ) <- tixs_mixs
]
return ()
+