diff options
-rw-r--r-- | lualibs-extended.lua | 78 |
1 files changed, 63 insertions, 15 deletions
diff --git a/lualibs-extended.lua b/lualibs-extended.lua index 8efd7b5..ccd32e9 100644 --- a/lualibs-extended.lua +++ b/lualibs-extended.lua @@ -11,27 +11,75 @@ local lualibs_basic_module = { license = "See ConTeXt's mreadme.pdf for the license", } -local error +--[[doc-- +Here we define some functions that fake the elaborate logging/tracking +mechanism Context provides. +--doc]]-- +local error, logger if luatexbase and luatexbase.provides_module then - local __error,_,_ = luatexbase.provides_module(lualibs_module) - error = __error + --- TODO test how those work out when running tex + local __error,_,_,__logger = luatexbase.provides_module(lualibs_module) + error = __error + logger = __logger else - error = texio.write_nl + local texiowrite = texio.write + local texiowrite_nl = texio.write_nl + local stringformat = string.format + local mklog = function (t) + local prefix = stringformat("[%s] ", t) + return function (...) + texiowrite_nl(prefix) + texiowrite (stringformat(...)) + end + end + error = mklog"ERROR" + logger = mklog"INFO" +end + +--[[doc-- +We temporarily put our own global table in place and restore whatever +we overloaded afterwards. +--doc]]-- +local log_backup +local switch_logger = function ( ) + if _G.logs then + log_backup = _G.logs + end + _G.logs = { + reporter = logger, + newline = function ( ) texiowrite_nl"" end, + } +end + +--[[doc-- +Restore a backed up logger if appropriate. +--doc]]-- +local restore_logger = function ( ) + if log_backup then _G.logs = log_backup end end local loadmodule = lualibs.loadmodule -loadmodule("lualibs-util-str.lua") -loadmodule("lualibs-util-tab.lua") -loadmodule("lualibs-util-sto.lua") -----------("lualibs-util-pck.lua")--- packers; necessary? -----------("lualibs-util-seq.lua")--- sequencers (function chaining) -----------("lualibs-util-mrg.lua")--- only relevant in mtx-package +loadmodule("lualibs-util-str.lua")--- string formatters (fast) +loadmodule("lualibs-util-tab.lua")--- extended table operations +loadmodule("lualibs-util-sto.lua")--- storage (hash allocation) +----------("lualibs-util-pck.lua")---!packers; necessary? +----------("lualibs-util-seq.lua")---!sequencers (function chaining) +----------("lualibs-util-mrg.lua")---!only relevant in mtx-package loadmodule("lualibs-util-prs.lua")--- miscellaneous parsers; cool. cool cool cool -----------("lualibs-util-fmt.lua")--- column formtatter (rarely used) -loadmodule("lualibs-util-dim.lua") -loadmodule("lualibs-util-jsn.lua") +----------("lualibs-util-fmt.lua")---!column formatter (rarely used) +loadmodule("lualibs-util-dim.lua")--- conversions between dimensions +loadmodule("lualibs-util-jsn.lua")--- JSON parser + + +switch_logger() + +----------("lualibs-trac-set.lua")---!generalization of trackers +----------("lualibs-trac-log.lua")---!logging +loadmodule("lualibs-trac-inf.lua")--- timing/statistics +loadmodule("lualibs-util-lua.lua")--- operations on lua bytecode + +restore_logger() -----------("lualibs-util-lua.lua")--- operations on lua bytecode --- +-- vim:tw=71:sw=2:ts=2:expandtab -- End of File `lualibs-extended.lua'. |