summaryrefslogtreecommitdiff
path: root/lualibs-extended.lua
diff options
context:
space:
mode:
authorPhilipp Gesang <phg42.2a@gmail.com>2013-04-12 12:53:51 +0200
committerPhilipp Gesang <phg42.2a@gmail.com>2013-04-12 12:53:51 +0200
commitb33173eaa6f7c9c45a883e0130d2ca3c964df135 (patch)
tree51c25ba1935f7cc1cee30b3a4910d168b8da72c5 /lualibs-extended.lua
parenta82b2398f53a404a7dab6f6bba6e123dcaf62d8a (diff)
downloadlualibs-b33173eaa6f7c9c45a883e0130d2ca3c964df135.tar.gz
fake trackers to please further Context libs
Diffstat (limited to 'lualibs-extended.lua')
-rw-r--r--lualibs-extended.lua78
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'.