Data.Text.{head,last} aren't total.
parent
9d156f17b0
commit
78f6c6c7eb
|
@ -9,7 +9,7 @@ module Data.HTTPSEverywhere.Rules.Internal.Parser (
|
||||||
#endif
|
#endif
|
||||||
) where
|
) where
|
||||||
|
|
||||||
import Prelude hiding (head, last, tail, init)
|
import Prelude hiding (head, last, tail, init, length)
|
||||||
import Control.Applicative ((<$>))
|
import Control.Applicative ((<$>))
|
||||||
import Control.Lens (toListOf, only, to, (^..), (^.), (&), (<&>), _Just)
|
import Control.Lens (toListOf, only, to, (^..), (^.), (&), (<&>), _Just)
|
||||||
import Control.Monad (join)
|
import Control.Monad (join)
|
||||||
|
@ -17,7 +17,7 @@ import Data.Functor.Infix ((<$$>))
|
||||||
import Data.Maybe (catMaybes, fromJust, fromMaybe)
|
import Data.Maybe (catMaybes, fromJust, fromMaybe)
|
||||||
import Data.String.Conversions (cs)
|
import Data.String.Conversions (cs)
|
||||||
import qualified Data.Text as Strict (Text)
|
import qualified Data.Text as Strict (Text)
|
||||||
import Data.Text (append, head, last, tail, init, replace)
|
import Data.Text (append, head, last, tail, init, replace, length)
|
||||||
import qualified Data.Text.Lazy as Lazy (Text)
|
import qualified Data.Text.Lazy as Lazy (Text)
|
||||||
import Network.HTTP.Client (Cookie(..))
|
import Network.HTTP.Client (Cookie(..))
|
||||||
import Network.URI (URI(uriAuthority), URIAuth(uriRegName), parseURI)
|
import Network.URI (URI(uriAuthority), URIAuth(uriRegName), parseURI)
|
||||||
|
@ -40,6 +40,7 @@ parseRuleSet xml = xml ^. attr "name" <&> \ruleSetName -> do
|
||||||
parseTarget :: Strict.Text -> Target
|
parseTarget :: Strict.Text -> Target
|
||||||
parseTarget = Target . checkRegName . fromJust . match . fromWildcard . replace "." "\\."
|
parseTarget = Target . checkRegName . fromJust . match . fromWildcard . replace "." "\\."
|
||||||
where fromWildcard str
|
where fromWildcard str
|
||||||
|
| length str == 0 = str
|
||||||
| head str == '*' = flip append ".*" $ tail str
|
| head str == '*' = flip append ".*" $ tail str
|
||||||
| last str == '*' = append ".*" $ init str
|
| last str == '*' = append ".*" $ init str
|
||||||
| otherwise = str
|
| otherwise = str
|
||||||
|
|
Loading…
Reference in New Issue