Use System.FilePath functions instead of (++)
authorThomas Miedema <thomasmiedema@gmail.com>
Thu, 5 Mar 2015 20:36:07 +0000 (21:36 +0100)
committerThomas Miedema <thomasmiedema@gmail.com>
Wed, 11 Mar 2015 16:34:53 +0000 (17:34 +0100)
Trace/Hpc/Mix.hs
Trace/Hpc/Tix.hs
hpc.cabal

index 28050ad..4a7fc74 100644 (file)
@@ -27,6 +27,8 @@ import Data.Time (UTCTime)
 import Data.Tree
 import Data.Char
 
+import System.FilePath
+
 -- a module index records the attributes of each tick-box that has
 -- been introduced in that module, accessed by tick-number position
 -- in the list
@@ -107,7 +109,7 @@ readMix dirNames mod' = do
      _        -> error $ "can not find " ++ modName ++ " in " ++ show dirNames
 
 mixName :: FilePath -> String -> String
-mixName dirName name = dirName ++ "/" ++ name ++ ".mix"
+mixName dirName name = dirName </> name <.> "mix"
 
 ------------------------------------------------------------------------------
 
index 2b03e0a..fa95dbf 100644 (file)
@@ -1,6 +1,10 @@
 {-# LANGUAGE CPP #-}
-#ifdef __GLASGOW_HASKELL__
+#if __GLASGOW_HASKELL__ >= 704
 {-# LANGUAGE Safe #-}
+#elif __GLASGOW_HASKELL__ >= 702
+-- System.FilePath in filepath version 1.2.0.1 isn't marked or implied Safe,
+-- as shipped with GHC 7.2.
+{-# LANGUAGE Trustworthy #-}
 #endif
 ------------------------------------------------------------
 -- Andy Gill and Colin Runciman, June 2006
@@ -12,7 +16,8 @@ module Trace.Hpc.Tix(Tix(..), TixModule(..),
                      tixModuleName, tixModuleHash, tixModuleTixs,
                      readTix, writeTix, getTixFileName) where
 
-import Data.List (isSuffixOf)
+import System.FilePath (replaceExtension)
+
 import Trace.Hpc.Util (Hash, catchIO)
 
 -- | 'Tix' is the storage format for our dynamic information about
@@ -52,15 +57,7 @@ writeTix :: String
 writeTix name tix =
   writeFile name (show tix)
 
-{-
-tixName :: String -> String
-tixName name = name ++ ".tix"
--}
-
 -- | 'getTixFullName' takes a binary or @.tix@-file name,
 -- and normalizes it into a @.tix@-file name.
 getTixFileName :: String -> String
-getTixFileName str | ".tix" `isSuffixOf` str
-                   = str
-                   | otherwise
-                   = str ++ ".tix"
+getTixFileName str = replaceExtension str "tix"
index 857faba..4e5b6f0 100644 (file)
--- a/hpc.cabal
+++ b/hpc.cabal
@@ -38,5 +38,6 @@ Library
         base       >= 4.4.1 && < 4.9,
         containers >= 0.4.1 && < 0.6,
         directory  >= 1.1   && < 1.3,
+        filepath   >= 1     && < 1.5,
         time       >= 1.2   && < 1.6
     ghc-options: -Wall