diff options
Diffstat (limited to 'tex/context/base/l-lua.lua')
-rw-r--r-- | tex/context/base/l-lua.lua | 300 |
1 files changed, 150 insertions, 150 deletions
diff --git a/tex/context/base/l-lua.lua b/tex/context/base/l-lua.lua index fc05afa67..486c14a5f 100644 --- a/tex/context/base/l-lua.lua +++ b/tex/context/base/l-lua.lua @@ -1,150 +1,150 @@ -if not modules then modules = { } end modules ['l-lua'] = { - version = 1.001, - comment = "companion to luat-lib.mkiv", - author = "Hans Hagen, PRAGMA-ADE, Hasselt NL", - copyright = "PRAGMA ADE / ConTeXt Development Team", - license = "see context related readme files" -} - --- compatibility hacksand helpers - -local major, minor = string.match(_VERSION,"^[^%d]+(%d+)%.(%d+).*$") - -_MAJORVERSION = tonumber(major) or 5 -_MINORVERSION = tonumber(minor) or 1 -_LUAVERSION = _MAJORVERSION + _MINORVERSION/10 - --- lpeg - -if not lpeg then - lpeg = require("lpeg") -end - --- basics: - -if loadstring then - - local loadnormal = load - - function load(first,...) - if type(first) == "string" then - return loadstring(first,...) - else - return loadnormal(first,...) - end - end - -else - - loadstring = load - -end - --- table: - --- At some point it was announced that i[pairs would be dropped, which makes --- sense. As we already used the for loop and # in most places the impact on --- ConTeXt was not that large; the remaining ipairs already have been replaced. --- Hm, actually ipairs was retained, but we no longer use it anyway (nor --- pairs). --- --- Just in case, we provide the fallbacks as discussed in Programming --- in Lua (http://www.lua.org/pil/7.3.html): - -if not ipairs then - - -- for k, v in ipairs(t) do ... end - -- for k=1,#t do local v = t[k] ... end - - local function iterate(a,i) - i = i + 1 - local v = a[i] - if v ~= nil then - return i, v --, nil - end - end - - function ipairs(a) - return iterate, a, 0 - end - -end - -if not pairs then - - -- for k, v in pairs(t) do ... end - -- for k, v in next, t do ... end - - function pairs(t) - return next, t -- , nil - end - -end - --- The unpack function has been moved to the table table, and for compatiility --- reasons we provide both now. - -if not table.unpack then - - table.unpack = _G.unpack - -elseif not unpack then - - _G.unpack = table.unpack - -end - --- package: - --- if not package.seachers then --- --- package.searchers = package.loaders -- 5.2 --- --- elseif not package.loaders then --- --- package.loaders = package.searchers --- --- end - -if not package.loaders then -- brr, searchers is a special "loadlib function" userdata type - - package.loaders = package.searchers - -end - --- moved from util-deb to here: - -local print, select, tostring = print, select, tostring - -local inspectors = { } - -function setinspector(inspector) -- global function - inspectors[#inspectors+1] = inspector -end - -function inspect(...) -- global function - for s=1,select("#",...) do - local value = select(s,...) - local done = false - for i=1,#inspectors do - done = inspectors[i](value) - if done then - break - end - end - if not done then - print(tostring(value)) - end - end -end - --- - -local dummy = function() end - -function optionalrequire(...) - local ok, result = xpcall(require,dummy,...) - if ok then - return result - end -end +if not modules then modules = { } end modules ['l-lua'] = {
+ version = 1.001,
+ comment = "companion to luat-lib.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- compatibility hacksand helpers
+
+local major, minor = string.match(_VERSION,"^[^%d]+(%d+)%.(%d+).*$")
+
+_MAJORVERSION = tonumber(major) or 5
+_MINORVERSION = tonumber(minor) or 1
+_LUAVERSION = _MAJORVERSION + _MINORVERSION/10
+
+-- lpeg
+
+if not lpeg then
+ lpeg = require("lpeg")
+end
+
+-- basics:
+
+if loadstring then
+
+ local loadnormal = load
+
+ function load(first,...)
+ if type(first) == "string" then
+ return loadstring(first,...)
+ else
+ return loadnormal(first,...)
+ end
+ end
+
+else
+
+ loadstring = load
+
+end
+
+-- table:
+
+-- At some point it was announced that i[pairs would be dropped, which makes
+-- sense. As we already used the for loop and # in most places the impact on
+-- ConTeXt was not that large; the remaining ipairs already have been replaced.
+-- Hm, actually ipairs was retained, but we no longer use it anyway (nor
+-- pairs).
+--
+-- Just in case, we provide the fallbacks as discussed in Programming
+-- in Lua (http://www.lua.org/pil/7.3.html):
+
+if not ipairs then
+
+ -- for k, v in ipairs(t) do ... end
+ -- for k=1,#t do local v = t[k] ... end
+
+ local function iterate(a,i)
+ i = i + 1
+ local v = a[i]
+ if v ~= nil then
+ return i, v --, nil
+ end
+ end
+
+ function ipairs(a)
+ return iterate, a, 0
+ end
+
+end
+
+if not pairs then
+
+ -- for k, v in pairs(t) do ... end
+ -- for k, v in next, t do ... end
+
+ function pairs(t)
+ return next, t -- , nil
+ end
+
+end
+
+-- The unpack function has been moved to the table table, and for compatiility
+-- reasons we provide both now.
+
+if not table.unpack then
+
+ table.unpack = _G.unpack
+
+elseif not unpack then
+
+ _G.unpack = table.unpack
+
+end
+
+-- package:
+
+-- if not package.seachers then
+--
+-- package.searchers = package.loaders -- 5.2
+--
+-- elseif not package.loaders then
+--
+-- package.loaders = package.searchers
+--
+-- end
+
+if not package.loaders then -- brr, searchers is a special "loadlib function" userdata type
+
+ package.loaders = package.searchers
+
+end
+
+-- moved from util-deb to here:
+
+local print, select, tostring = print, select, tostring
+
+local inspectors = { }
+
+function setinspector(inspector) -- global function
+ inspectors[#inspectors+1] = inspector
+end
+
+function inspect(...) -- global function
+ for s=1,select("#",...) do
+ local value = select(s,...)
+ local done = false
+ for i=1,#inspectors do
+ done = inspectors[i](value)
+ if done then
+ break
+ end
+ end
+ if not done then
+ print(tostring(value))
+ end
+ end
+end
+
+--
+
+local dummy = function() end
+
+function optionalrequire(...)
+ local ok, result = xpcall(require,dummy,...)
+ if ok then
+ return result
+ end
+end
|