on master help sign in
Fix sliceSepByMax.
12ca6eePranay Sashank
src/Streamly/Internal/Data/Parser/ParserD.hs+11−9
@@ -505,15 +505,17 @@ sliceSepByMax predicate cnt (Fold fstep finitial fextract) =
505 where
505 where
506
506
507 initial = Tuple' 0 <$> finitial
507 initial = Tuple' 0 <$> finitial
508− step (Tuple' i r) a = do
508+ step (Tuple' i r) a
509+ | not (predicate a) = do
509− res <- fstep r a
510+ res <- fstep r a
510− let i1 = i + 1
511+ let i1 = i + 1
511− s1 = Tuple' i1 res
512+ s1 = Tuple' i1 res
512− if not (predicate a) && i1 < cnt
513+ if i1 < cnt
513− then return $ Yield 0 s1
514+ then return $ Yield 0 s1
514− else do
515+ else do
515− b <- fextract res
516+ b <- fextract res
516− return $ Stop 0 b
517+ return $ Stop 0 b
518+ | otherwise = Stop 0 <$> fextract r
517 extract (Tuple' _ r) = fextract r
519 extract (Tuple' _ r) = fextract r
518
520
519-- | See 'Streamly.Internal.Data.Parser.wordBy'.
521-- | See 'Streamly.Internal.Data.Parser.wordBy'.