@@ -310,8 +310,10 @@ runStreamBuilder ii buf0 room0 sq = loop buf0 room0 0
310310 Just (SFile path part) -> do
311311 (leftover, len) <- runStreamFile ii buf room path part
312312 let !total' = total + len
313− return (leftover, Nothing, total')
314− -- TODO if file part is done, go back to loop
313+ case leftover of
314+ LZero -> loop (buf `plusPtr` len) (room - len) total'
315+ _ -> return (leftover, Nothing, total')
316+
315317 Just SFlush -> return (LZero, Nothing, total)
316318 Just (SFinish trailers) -> return (LZero, Just trailers, total)
317319