aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--core.lua11
1 files changed, 7 insertions, 4 deletions
diff --git a/core.lua b/core.lua
index 3bc149f..67602ac 100644
--- a/core.lua
+++ b/core.lua
@@ -53,10 +53,13 @@ local function save_pack(...)
return {n = select('#', ...), ...}
end
-local function save_unpack(t, i)
- i = i or 1
- if i >= t.n then return t[i] end
- return t[i], save_unpack(t, i+1)
+local function save_unpack_helper(t, i, ...)
+ if i <= 0 then return ... end
+ return save_unpack_helper(t, i-1, t[i], ...)
+end
+
+local function save_unpack(t)
+ return save_unpack_helper(t, t.n)
end
--