diff -up luaposix-8f8058293efd9654e5fc7f7627a04f4db2b56f8f/posix.lua.lua-52 luaposix-8f8058293efd9654e5fc7f7627a04f4db2b56f8f/posix.lua --- luaposix-8f8058293efd9654e5fc7f7627a04f4db2b56f8f/posix.lua.lua-52 2013-05-12 21:37:05.201524376 -0400 +++ luaposix-8f8058293efd9654e5fc7f7627a04f4db2b56f8f/posix.lua 2013-05-12 21:43:12.845548551 -0400 @@ -4,6 +4,27 @@ local posix = M local bit if _VERSION == "Lua 5.1" then bit = require "bit" else bit = require "bit32" end +-- Code extracted from lua-stdlib with minimal modifications +local list = { + sub = function (l, from, to) + local r = {} + local len = #l + from = from or 1 + to = to or len + if from < 0 then + from = from + len + 1 + end + if to < 0 then + to = to + len + 1 + end + for i = from, to do + table.insert (r, l[i]) + end + return r + end +} +-- end of stdlib code + --- Create a file. -- @param file name of file to create -- @param mode permissions with which to create file @@ -30,7 +51,7 @@ function M.spawn (task, ...) task = {"/bin/sh", "-c", task, ...} end if type (task) == "table" then - posix.execp (unpack (task)) + posix.execp (table.unpack (task)) -- Only get here if there's an error; kill the fork local _, no = posix.errno () posix._exit (no)