@@ -64,13 +64,14 @@ parseHttpAccept = map fst
6464 rcompare :: Double -> Double -> Ordering
6565 rcompare = flip compare
6666 grabQ s =
67− let (s', q) = breakDiscard 59 s -- semicolon
68− (_, q') = breakDiscard 61 q -- equals sign
69− in (trimWhite s', readQ $ trimWhite q')
67+ -- Stripping all spaces may be too harsh.
68+ -- Maybe just strip either side of semicolon?
69+ let (s', q) = S.breakSubstring ";q=" (S.filter (/=0x20) s) -- 0x20 is space
70+ q' = S.takeWhile (/=0x3B) (S.drop 3 q) -- 0x3B is semicolon
71+ in (s', readQ q')
7072 readQ s = case reads $ S8.unpack s of
7173 (x, _):_ -> x
7274 _ -> 1.0
73− trimWhite = S.dropWhile (== 32) -- space
7475
7576-- | Store uploaded files in memory
7677lbsBackEnd :: Monad m => ignored1 -> ignored2 -> Sink S.ByteString m L.ByteString