diff --git a/startup.lua b/startup.lua index 082bdc9..0306df6 100644 --- a/startup.lua +++ b/startup.lua @@ -139,7 +139,7 @@ end term.clear() term.setCursorPos(1, 1) if bootOptions[bootOption].args then - os.run(_G.getfenv(1), table.unpack(bootOptions[bootOption].args)) + os.run({}, table.unpack(bootOptions[bootOption].args)) else print(bootOptions[bootOption].prompt) end diff --git a/sys/apps/mount.lua b/sys/apps/mount.lua index d7bde84..a25eb38 100644 --- a/sys/apps/mount.lua +++ b/sys/apps/mount.lua @@ -3,4 +3,4 @@ local args = { ... } local target = table.remove(args, 1) target = shell.resolve(target) -fs.mount(target, unpack(args)) +fs.mount(target, table.unpack(args)) diff --git a/sys/apps/network/samba.lua b/sys/apps/network/samba.lua index f679b4d..50cbfd0 100644 --- a/sys/apps/network/samba.lua +++ b/sys/apps/network/samba.lua @@ -48,7 +48,7 @@ local function sambaConnection(socket) end local ret local s, m = pcall(function() - ret = fn(unpack(msg.args)) + ret = fn(table.unpack(msg.args)) end) if not s and m then _G.printError('samba: ' .. m) diff --git a/sys/apps/vnc.lua b/sys/apps/vnc.lua index 0265254..c9d865c 100644 --- a/sys/apps/vnc.lua +++ b/sys/apps/vnc.lua @@ -70,7 +70,7 @@ local function connect() break end for _,v in ipairs(data) do - ct[v.f](unpack(v.args)) + ct[v.f](table.unpack(v.args)) end end end) diff --git a/sys/init/6.tl3.lua b/sys/init/6.tl3.lua index ee3f3aa..e1e9ecf 100644 --- a/sys/init/6.tl3.lua +++ b/sys/init/6.tl3.lua @@ -241,7 +241,7 @@ local function _place(action, indexOrId) if not state.digPolicy(action) then state.attackPolicy(action) end - return unpack(result) + return table.unpack(result) end) end @@ -1024,7 +1024,7 @@ function turtle.run(fn, ...) synchronized(turtle, function() turtle.resetState() - s, m = pcall(function() fn(unpack(args)) end) + s, m = pcall(function() fn(table.unpack(args)) end) turtle.resetState() if not s and m then _G.printError(m) diff --git a/sys/modules/opus/crypto/chacha20.lua b/sys/modules/opus/crypto/chacha20.lua index 9547f6c..7c3b819 100644 --- a/sys/modules/opus/crypto/chacha20.lua +++ b/sys/modules/opus/crypto/chacha20.lua @@ -34,7 +34,7 @@ local function quarterRound(s, a, b, c, d) end local function hashBlock(state, rnd) - local s = {unpack(state)} + local s = {table.unpack(state)} for i = 1, rnd do local r = i%2==1 s = r and quarterRound(s, 1, 5, 9, 13) or quarterRound(s, 1, 6, 11, 16) @@ -92,9 +92,9 @@ local function serialize(state) end local mt = { - __tostring = function(a) return string.char(unpack(a)) end, + __tostring = function(a) return string.char(table.unpack(a)) end, __index = { - toHex = function(self) return ("%02x"):rep(#self):format(unpack(self)) end, + toHex = function(self) return ("%02x"):rep(#self):format(table.unpack(self)) end, isEqual = function(self, t) if type(t) ~= "table" then return false end if #self ~= #t then return false end @@ -113,7 +113,7 @@ local function crypt(data, key, nonce, cntr, round) assert(#key == 16 or #key == 32, "ChaCha20: Invalid key length ("..#key.."), must be 16 or 32") assert(#nonce == 12, "ChaCha20: Invalid nonce length ("..#nonce.."), must be 12") - data = type(data) == "table" and {unpack(data)} or {tostring(data):byte(1,-1)} + data = type(data) == "table" and {table.unpack(data)} or {tostring(data):byte(1,-1)} cntr = tonumber(cntr) or 1 round = tonumber(round) or 20 diff --git a/sys/modules/opus/crypto/sha2.lua b/sys/modules/opus/crypto/sha2.lua index 2754ee7..4dcb98b 100644 --- a/sys/modules/opus/crypto/sha2.lua +++ b/sys/modules/opus/crypto/sha2.lua @@ -8,7 +8,7 @@ local band = bit32 and bit32.band or bit.band local bnot = bit32 and bit32.bnot or bit.bnot local bxor = bit32 and bit32.bxor or bit.bxor local blshift = bit32 and bit32.lshift or bit.blshift -local upack = unpack +local upack = unpack or table.unpack local function rrotate(n, b) local s = n/(2^b) @@ -95,9 +95,9 @@ local function digestblock(w, C) end local mt = { - __tostring = function(a) return string.char(unpack(a)) end, + __tostring = function(a) return string.char(upack(a)) end, __index = { - toHex = function(self) return ("%02x"):rep(#self):format(unpack(self)) end, + toHex = function(self) return ("%02x"):rep(#self):format(upack(self)) end, isEqual = function(self, t) if type(t) ~= "table" then return false end if #self ~= #t then return false end diff --git a/sys/modules/opus/util.lua b/sys/modules/opus/util.lua index 2c8e097..85ab2f0 100644 --- a/sys/modules/opus/util.lua +++ b/sys/modules/opus/util.lua @@ -21,7 +21,7 @@ end function Util.byteArrayToHex(tbl) if not tbl then error('byteArrayToHex: invalid table', 2) end - return ("%02x"):rep(#tbl):format(unpack(tbl)) + return ("%02x"):rep(#tbl):format(table.unpack(tbl)) end function Util.tryTimed(timeout, f, ...) @@ -39,10 +39,10 @@ function Util.tryTimes(attempts, f, ...) for _ = 1, attempts do result = { f(...) } if result[1] then - return unpack(result) + return table.unpack(result) end end - return unpack(result) + return table.unpack(result) end function Util.timer() @@ -490,7 +490,7 @@ function Util.loadTable(fname) if not fc then return false, 'Unable to read file' end - local s, m = loadstring('return ' .. fc, fname) + local s, m = load('return ' .. fc, fname) if s then s, m = pcall(s) if s then @@ -551,8 +551,9 @@ function Util.run(env, path, ...) end function Util.runFunction(env, fn, ...) - setfenv(fn, env) + --setfenv(fn, env) setmetatable(env, { __index = _G }) + fn = load(fn,"util.runfunction",nil,env) return pcall(fn, ...) end