diff options
| author | Diego Nehab <diego@tecgraf.puc-rio.br> | 2005-11-22 08:33:29 +0000 |
|---|---|---|
| committer | Diego Nehab <diego@tecgraf.puc-rio.br> | 2005-11-22 08:33:29 +0000 |
| commit | d55a5826e81136a9ecf65c4cd407152a56684dc2 (patch) | |
| tree | 109ad44c75cee890ad5e98583e12b15b5e65a18e /src/ltn12.lua | |
| parent | a2b780bf7a78c66d54a248fa99b5fc862c12a127 (diff) | |
| download | luasocket-d55a5826e81136a9ecf65c4cd407152a56684dc2.tar.gz luasocket-d55a5826e81136a9ecf65c4cd407152a56684dc2.tar.bz2 luasocket-d55a5826e81136a9ecf65c4cd407152a56684dc2.zip | |
Few tweaks in installation, some missing files, etc.
Diffstat (limited to 'src/ltn12.lua')
| -rw-r--r-- | src/ltn12.lua | 30 |
1 files changed, 15 insertions, 15 deletions
diff --git a/src/ltn12.lua b/src/ltn12.lua index 2c16253..c49d130 100644 --- a/src/ltn12.lua +++ b/src/ltn12.lua | |||
| @@ -36,19 +36,19 @@ end | |||
| 36 | 36 | ||
| 37 | -- chains a bunch of filters together | 37 | -- chains a bunch of filters together |
| 38 | -- (thanks to Wim Couwenberg) | 38 | -- (thanks to Wim Couwenberg) |
| 39 | function filter.chain(...) | 39 | function filter.chain(...) |
| 40 | local n = table.getn(arg) | 40 | local n = table.getn(arg) |
| 41 | local top, index = 1, 1 | 41 | local top, index = 1, 1 |
| 42 | local retry = "" | 42 | local retry = "" |
| 43 | return function(chunk) | 43 | return function(chunk) |
| 44 | retry = chunk and retry | 44 | retry = chunk and retry |
| 45 | while true do | 45 | while true do |
| 46 | if index == top then | 46 | if index == top then |
| 47 | chunk = arg[index](chunk) | 47 | chunk = arg[index](chunk) |
| 48 | if chunk == "" or top == n then return chunk | 48 | if chunk == "" or top == n then return chunk |
| 49 | elseif chunk then index = index + 1 | 49 | elseif chunk then index = index + 1 |
| 50 | else | 50 | else |
| 51 | top = top+1 | 51 | top = top+1 |
| 52 | index = top | 52 | index = top |
| 53 | end | 53 | end |
| 54 | else | 54 | else |
| @@ -148,9 +148,9 @@ function source.chain(src, f) | |||
| 148 | last_in, err = src() | 148 | last_in, err = src() |
| 149 | if err then return nil, err end | 149 | if err then return nil, err end |
| 150 | last_out = f(last_in) | 150 | last_out = f(last_in) |
| 151 | if not last_out then | 151 | if not last_out then |
| 152 | if last_in then | 152 | if last_in then |
| 153 | base.error('filter returned inappropriate nil') | 153 | base.error('filter returned inappropriate nil') |
| 154 | else | 154 | else |
| 155 | return nil | 155 | return nil |
| 156 | end | 156 | end |
| @@ -159,17 +159,17 @@ function source.chain(src, f) | |||
| 159 | if last_in then last_in = "" end | 159 | if last_in then last_in = "" end |
| 160 | return last_out | 160 | return last_out |
| 161 | end | 161 | end |
| 162 | else | 162 | else |
| 163 | last_out = f(last_in) | 163 | last_out = f(last_in) |
| 164 | if last_out == "" then | 164 | if last_out == "" then |
| 165 | if last_in == "" then | 165 | if last_in == "" then |
| 166 | state = "feeding" | 166 | state = "feeding" |
| 167 | else | 167 | else |
| 168 | base.error('filter returned ""') | 168 | base.error('filter returned ""') |
| 169 | end | 169 | end |
| 170 | elseif not last_out then | 170 | elseif not last_out then |
| 171 | if last_in then | 171 | if last_in then |
| 172 | base.error('filter returned inappropriate nil') | 172 | base.error('filter returned inappropriate nil') |
| 173 | else | 173 | else |
| 174 | return nil | 174 | return nil |
| 175 | end | 175 | end |
| @@ -224,7 +224,7 @@ end | |||
| 224 | function sink.file(handle, io_err) | 224 | function sink.file(handle, io_err) |
| 225 | if handle then | 225 | if handle then |
| 226 | return function(chunk, err) | 226 | return function(chunk, err) |
| 227 | if not chunk then | 227 | if not chunk then |
| 228 | handle:close() | 228 | handle:close() |
| 229 | return 1 | 229 | return 1 |
| 230 | else return handle:write(chunk) end | 230 | else return handle:write(chunk) end |
| @@ -248,7 +248,7 @@ function sink.error(err) | |||
| 248 | end | 248 | end |
| 249 | end | 249 | end |
| 250 | 250 | ||
| 251 | -- chains a sink with a filter | 251 | -- chains a sink with a filter |
| 252 | function sink.chain(f, snk) | 252 | function sink.chain(f, snk) |
| 253 | base.assert(f and snk) | 253 | base.assert(f and snk) |
| 254 | return function(chunk, err) | 254 | return function(chunk, err) |
| @@ -282,7 +282,7 @@ function pump.all(src, snk, step) | |||
| 282 | step = step or pump.step | 282 | step = step or pump.step |
| 283 | while true do | 283 | while true do |
| 284 | local ret, err = step(src, snk) | 284 | local ret, err = step(src, snk) |
| 285 | if not ret then | 285 | if not ret then |
| 286 | if err then return nil, err | 286 | if err then return nil, err |
| 287 | else return 1 end | 287 | else return 1 end |
| 288 | end | 288 | end |
