From 9e2111106b33c418cb30384038d35f28c7374eb1 Mon Sep 17 00:00:00 2001 From: Simon Michael Date: Sun, 17 May 2015 08:32:45 -0700 Subject: [PATCH] drop regexpr dependency --- hledger-lib/Hledger/Utils/Regex.hs | 13 ++----------- hledger-lib/hledger-lib.cabal | 2 -- hledger-web/hledger-web.cabal | 2 -- hledger/Hledger/Cli/Options.hs | 3 ++- hledger/hledger.cabal | 3 --- 5 files changed, 4 insertions(+), 19 deletions(-) diff --git a/hledger-lib/Hledger/Utils/Regex.hs b/hledger-lib/Hledger/Utils/Regex.hs index 161defac4..c944ae26f 100644 --- a/hledger-lib/Hledger/Utils/Regex.hs +++ b/hledger-lib/Hledger/Utils/Regex.hs @@ -1,8 +1,7 @@ {-# LANGUAGE ScopedTypeVariables #-} {-| -Easy regular expression helpers, based on regex-tdfa and (a little) on -regexpr. These should: +Easy regular expression helpers, currently based on regex-tdfa. These should: - be cross-platform, not requiring C libraries @@ -30,22 +29,19 @@ module Hledger.Utils.Regex ( -- * type aliases Regexp ,Replacement - -- * based on regex-tdfa + -- * standard regex operations ,regexMatches ,regexMatchesCI ,regexReplace ,regexReplaceCI ,regexReplaceBy ,regexReplaceByCI - -- * based on regexpr - ,regexSplit ) where import Data.Array import Data.Char import Data.List (foldl') -import Text.RegexPR (splitRegexPR) import Text.Regex.TDFA ( Regex, CompOption(..), ExecOption(..), defaultCompOpt, defaultExecOpt, makeRegexOpts, AllMatches(getAllMatches), match, (=~), MatchText @@ -132,8 +128,3 @@ replaceAllBy re f s = start end (matched, remaining) = splitAt len start in (off + len, remaining, write . (skip++) . (f matched ++)) --- uses regexpr, may be slow: - -regexSplit :: Regexp -> String -> [Regexp] -regexSplit = splitRegexPR - diff --git a/hledger-lib/hledger-lib.cabal b/hledger-lib/hledger-lib.cabal index c88b5ed75..8b570e434 100644 --- a/hledger-lib/hledger-lib.cabal +++ b/hledger-lib/hledger-lib.cabal @@ -105,7 +105,6 @@ library ,old-time ,parsec >= 3 ,regex-tdfa - ,regexpr >= 0.5.1 ,safe >= 0.2 ,split >= 0.1 && < 0.3 ,transformers >= 0.2 && < 0.5 @@ -144,7 +143,6 @@ test-suite tests , old-time , parsec >= 3 , regex-tdfa - , regexpr , safe , split , test-framework diff --git a/hledger-web/hledger-web.cabal b/hledger-web/hledger-web.cabal index f000b7fa2..e5e71f2e6 100644 --- a/hledger-web/hledger-web.cabal +++ b/hledger-web/hledger-web.cabal @@ -178,7 +178,6 @@ library , network-conduit , conduit-extra , parsec >= 3 - , regexpr >= 0.5.1 , safe >= 0.2 , shakespeare >= 2.0 , template-haskell @@ -253,7 +252,6 @@ executable hledger-web , network-conduit , conduit-extra , parsec >= 3 - , regexpr >= 0.5.1 , safe >= 0.2 , shakespeare >= 2.0 && < 2.1 , template-haskell diff --git a/hledger/Hledger/Cli/Options.hs b/hledger/Hledger/Cli/Options.hs index a905340f8..9f121c15c 100644 --- a/hledger/Hledger/Cli/Options.hs +++ b/hledger/Hledger/Cli/Options.hs @@ -64,6 +64,7 @@ import Prelude.Compat import qualified Control.Exception as C import Control.Monad (when) import Data.List.Compat +import Data.List.Split (splitOneOf) import Data.Maybe import Safe import System.Console.CmdArgs @@ -514,7 +515,7 @@ hledgerAddons = do -- directory) or whether it has execute permission. hledgerExecutablesInPath :: IO [String] hledgerExecutablesInPath = do - pathdirs <- regexSplit "[:;]" `fmap` getEnvSafe "PATH" + pathdirs <- splitOneOf "[:;]" `fmap` getEnvSafe "PATH" pathfiles <- concat `fmap` mapM getDirectoryContentsSafe pathdirs return $ nub $ sort $ filter isHledgerExeName pathfiles -- XXX should exclude directories and files without execute permission. diff --git a/hledger/hledger.cabal b/hledger/hledger.cabal index c13e61077..0fb7589b1 100644 --- a/hledger/hledger.cabal +++ b/hledger/hledger.cabal @@ -93,7 +93,6 @@ library ,parsec >= 3 ,process ,regex-tdfa - ,regexpr >= 0.5.1 ,safe >= 0.2 ,split >= 0.1 && < 0.3 ,text >= 0.11 @@ -148,7 +147,6 @@ executable hledger ,parsec >= 3 ,process ,regex-tdfa - ,regexpr >= 0.5.1 ,safe >= 0.2 ,shakespeare-text >= 1.0 && < 1.2 ,shakespeare >= 1.0 && < 2.1 @@ -191,7 +189,6 @@ test-suite tests , parsec >= 3 , process , regex-tdfa - , regexpr , safe , shakespeare-text >= 1.0 && < 1.2 , shakespeare >= 1.0 && < 2.1