diff options
| author | Philipp Janda <siffiejoe@gmx.net> | 2015-04-26 14:39:57 +0200 |
|---|---|---|
| committer | Philipp Janda <siffiejoe@gmx.net> | 2015-04-26 14:39:57 +0200 |
| commit | 46b3056a0996d1bbdf4c1d4baa9f841e2d22299f (patch) | |
| tree | 2070920c99ed7d90a6bea4af13528766928dd3fa | |
| parent | c4a98dafd07ed28e8f05d8771de65ce18ba0bee7 (diff) | |
| download | lua-compat-5.3-46b3056a0996d1bbdf4c1d4baa9f841e2d22299f.tar.gz lua-compat-5.3-46b3056a0996d1bbdf4c1d4baa9f841e2d22299f.tar.bz2 lua-compat-5.3-46b3056a0996d1bbdf4c1d4baa9f841e2d22299f.zip | |
Add nonyieldable xpcall that takes extra arguments.
Although the full-featured yieldable xpcall has been moved to the
compat53 module, the compat53.module module can at least have a version
that takes and passes extra arguments.
Also remove some unnecessary local aliases left over from previous
refactoring.
| -rw-r--r-- | compat53/init.lua | 4 | ||||
| -rw-r--r-- | compat53/module.lua | 16 |
2 files changed, 14 insertions, 6 deletions
diff --git a/compat53/init.lua b/compat53/init.lua index e5f7692..e738091 100644 --- a/compat53/init.lua +++ b/compat53/init.lua | |||
| @@ -9,8 +9,8 @@ local lua_version = _VERSION:sub(-3) | |||
| 9 | if lua_version == "5.1" then | 9 | if lua_version == "5.1" then |
| 10 | 10 | ||
| 11 | -- cache globals | 11 | -- cache globals |
| 12 | local error, pcall, rawset, select, setmetatable, tostring, type, unpack, xpcall = | 12 | local error, pcall, rawset, select, setmetatable, tostring, unpack, xpcall = |
| 13 | error, pcall, rawset, select, setmetatable, tostring, type, unpack, xpcall | 13 | error, pcall, rawset, select, setmetatable, tostring, unpack, xpcall |
| 14 | local coroutine, debug, io, package, string = | 14 | local coroutine, debug, io, package, string = |
| 15 | coroutine, debug, io, package, string | 15 | coroutine, debug, io, package, string |
| 16 | local coroutine_create = coroutine.create | 16 | local coroutine_create = coroutine.create |
diff --git a/compat53/module.lua b/compat53/module.lua index 30b42ee..c69c131 100644 --- a/compat53/module.lua +++ b/compat53/module.lua | |||
| @@ -7,8 +7,8 @@ local M = _G | |||
| 7 | if lua_version < "5.3" then | 7 | if lua_version < "5.3" then |
| 8 | 8 | ||
| 9 | -- cache globals in upvalues | 9 | -- cache globals in upvalues |
| 10 | local error, getmetatable, ipairs, pairs, pcall, require, select, setmetatable, type = | 10 | local error, ipairs, pairs, pcall, require, select, setmetatable, type = |
| 11 | error, getmetatable, ipairs, pairs, pcall, require, select, setmetatable, type | 11 | error, ipairs, pairs, pcall, require, select, setmetatable, type |
| 12 | local debug, math, package, string, table = | 12 | local debug, math, package, string, table = |
| 13 | debug, math, package, string, table | 13 | debug, math, package, string, table |
| 14 | 14 | ||
| @@ -352,8 +352,8 @@ if lua_version < "5.3" then | |||
| 352 | #setmetatable({}, { __len = function() return 1 end }) == 1 | 352 | #setmetatable({}, { __len = function() return 1 end }) == 1 |
| 353 | 353 | ||
| 354 | -- cache globals in upvalues | 354 | -- cache globals in upvalues |
| 355 | local load, loadfile, loadstring, setfenv, tostring, unpack, xpcall = | 355 | local load, loadfile, loadstring, setfenv, unpack, xpcall = |
| 356 | load, loadfile, loadstring, setfenv, tostring, unpack, xpcall | 356 | load, loadfile, loadstring, setfenv, unpack, xpcall |
| 357 | local coroutine, io, os = coroutine, io, os | 357 | local coroutine, io, os = coroutine, io, os |
| 358 | local coroutine_create = coroutine.create | 358 | local coroutine_create = coroutine.create |
| 359 | local coroutine_resume = coroutine.resume | 359 | local coroutine_resume = coroutine.resume |
| @@ -529,6 +529,14 @@ if lua_version < "5.3" then | |||
| 529 | end | 529 | end |
| 530 | 530 | ||
| 531 | 531 | ||
| 532 | if not is_luajit then | ||
| 533 | function M.xpall(f, msgh, ...) | ||
| 534 | local args, n = { ... }, select('#', ...) | ||
| 535 | return xpcall(function() return f(unpack(args, 1, n)) end, msgh) | ||
| 536 | end | ||
| 537 | end | ||
| 538 | |||
| 539 | |||
| 532 | if not is_luajit52 then | 540 | if not is_luajit52 then |
| 533 | function M.os.execute(cmd) | 541 | function M.os.execute(cmd) |
| 534 | local code = os_execute(cmd) | 542 | local code = os_execute(cmd) |
