@@ -19,7 +19,6 @@ import Network.Wai
1919import Network.Wai.Enumerator (fromLBS', toLBS)
2020import Codec.Compression.GZip (compress)
2121import Data.Maybe (fromMaybe)
22−import Data.List.Split (splitOneOf)
2322import qualified Data.ByteString.Char8 as B
2423
2524-- | Use gzip to compress the body of the response.
@@ -42,7 +41,7 @@ gzip app env = do
4241 Left _ -> return res
4342 Right _ -> do
4443 let enc = fromMaybe []
45− $ (splitOneOf "," . B.unpack)
44+ $ (splitCommas . B.unpack)
4645 `fmap` lookup AcceptEncoding
4746 (requestHeaders env)
4847 if "gzip" `elem` enc
@@ -56,3 +55,9 @@ gzip app env = do
5655compressE :: Either FilePath Enumerator -> Either FilePath Enumerator
5756compressE (Left fp) = Left fp
5857compressE (Right e) = Right $ fromLBS' $ fmap compress $ toLBS e
58+
59+splitCommas :: String -> [String]
60+splitCommas [] = []
61+splitCommas x =
62+ let (y, z) = break (== ',') x
63+ in y : splitCommas (drop 1 z)