From 480a818bf0ef6de32527ba14fc2bb27e754d0612 Mon Sep 17 00:00:00 2001 From: Fabien Fleutot Date: Tue, 18 Jun 2013 11:01:46 +0200 Subject: support multiple filters in ltn12.{sink,source}.chain() --- src/ltn12.lua | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/ltn12.lua b/src/ltn12.lua index 5b10f56..1014de2 100644 --- a/src/ltn12.lua +++ b/src/ltn12.lua @@ -139,7 +139,9 @@ function source.rewind(src) end end -function source.chain(src, f) +-- chains a source with one or several filter(s) +function source.chain(src, f, ...) + if ... then f=filter.chain(f, ...) end base.assert(src and f) local last_in, last_out = "", "" local state = "feeding" @@ -254,8 +256,13 @@ function sink.error(err) end end --- chains a sink with a filter -function sink.chain(f, snk) +-- chains a sink with one or several filter(s) +function sink.chain(f, snk, ...) + if ... then + local args = { f, snk, ... } + snk = table.remove(args, #args) + f = filter.chain(unpack(args)) + end base.assert(f and snk) return function(chunk, err) if chunk ~= "" then -- cgit v1.2.3-55-g6feb