From eea1bc04d759e6a0e51c0b008828eaa372790cdb Mon Sep 17 00:00:00 2001
From: Pierre Chapuis <catwell@archlinux.us>
Date: Wed, 23 Jan 2013 19:03:46 +0100
Subject: [PATCH] fix use of arg in ltn documentation

---
 ltn012.wiki | 6 ++++--
 ltn013.wiki | 6 +++---
 2 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/ltn012.wiki b/ltn012.wiki
index b924dd3..96b13ae 100644
--- a/ltn012.wiki
+++ b/ltn012.wiki
@@ -126,8 +126,9 @@ local function chain2(f1, f2)
 end
 
 function filter.chain(...)
+    local arg = {...}
     local f = arg[1]
-    for i = 2, table.getn(arg) do
+    for i = 2, #arg do
         f = chain2(f, arg[i])
     end
     return f
@@ -235,9 +236,10 @@ end
 We can make these ideas even more powerful if we use a new feature of Lua 5.0: coroutines.  Coroutines suffer from a great lack of advertisement, and I am going to play my part here.  Just like lexical scoping, coroutines taste odd at first, but once you get used with the concept, it can save your day. I have to admit that using coroutines to implement our file source would be overkill, so let's implement a concatenated source factory instead.
         {{{
 function source.cat(...)
+    local arg = {...}
     local co = coroutine.create(function()
         local i = 1
-        while i <= table.getn(arg) do
+        while i <= #arg do
             local chunk, err = arg[i]()
             if chunk then coroutine.yield(chunk)
             elseif err then return nil, err 
diff --git a/ltn013.wiki b/ltn013.wiki
index 734b433..a622424 100644
--- a/ltn013.wiki
+++ b/ltn013.wiki
@@ -73,12 +73,12 @@ Fortunately, all these problems are very easy to solve and that's what we do in
 We used the {{pcall}} function to shield the user from errors that could be raised by the underlying implementation.  Instead of directly using {{pcall}} (and thus duplicating code) every time we prefer a factory that does the same job:
         {{{
 local function pack(ok, ...)
-    return ok, arg
+    return ok, {...}
 end
 
 function protect(f)
     return function(...)
-        local ok, ret = pack(pcall(f, unpack(arg)))
+        local ok, ret = pack(pcall(f, ...))
         if ok then return unpack(ret)
         else return nil, ret[1] end
     end
@@ -157,7 +157,7 @@ function newtry(f)
             if f then f() end 
             error(arg[2], 0)  
         else 
-            return unpack(arg) 
+            return ...
         end
     end
 end