diff options
Diffstat (limited to 'tex/context/base/buff-ini.lua')
-rw-r--r-- | tex/context/base/buff-ini.lua | 27 |
1 files changed, 20 insertions, 7 deletions
diff --git a/tex/context/base/buff-ini.lua b/tex/context/base/buff-ini.lua index 6b1af8f96..b3ab0c2a7 100644 --- a/tex/context/base/buff-ini.lua +++ b/tex/context/base/buff-ini.lua @@ -6,6 +6,8 @@ if not modules then modules = { } end modules ['buff-ini'] = { license = "see context related readme files" } +-- todo: deal with jobname here, or actually, "" is valid as well + -- ctx lua reference model / hooks and such -- to be optimized @@ -23,6 +25,8 @@ buffers.visualizers = { } local trace_run = false trackers.register("buffers.run", function(v) trace_run = v end) local trace_visualize = false trackers.register("buffers.visualize", function(v) trace_visualize = v end) +local report_buffers = logs.new("buffers") + local utf = unicode.utf8 local concat, texsprint, texprint, texwrite = table.concat, tex.sprint, tex.print, tex.write @@ -337,6 +341,15 @@ end buffers.content = content +function buffers.evaluate(name) + local ok = loadstring(content(name)) + if ok then + ok() + else + report_buffers("invalid lua code in buffer '%s'",name) + end +end + function buffers.collect(names,separator) -- no print -- maybe we should always store a buffer as table so -- that we can pass it directly @@ -420,10 +433,10 @@ function buffers.loadvisualizer(name) hn = handlers[visualizers.defaultname] handlers[name] = hn if trace_visualize then - logs.report("buffers","mapping '%s' visualizer onto '%s'",name,visualizers.defaultname) + report_buffers("mapping '%s' visualizer onto '%s'",name,visualizers.defaultname) end elseif trace_visualize then - logs.report("buffers","loading '%s' visualizer",name) + report_buffers("loading '%s' visualizer",name) end return hn end @@ -444,13 +457,13 @@ function buffers.setvisualizer(str) currenthandler = handlers[currentvisualizer] if currenthandler then -- if trace_visualize then - -- logs.report("buffers","enabling specific '%s' visualizer",currentvisualizer) + -- report_buffers("enabling specific '%s' visualizer",currentvisualizer) -- end else currentvisualizer = visualizers.defaultname currenthandler = handlers.default -- if trace_visualize then - -- logs.report("buffers","enabling default visualizer '%s'",currentvisualizer) + -- report_buffers("enabling default visualizer '%s'",currentvisualizer) -- end end if currenthandler.reset then @@ -764,7 +777,7 @@ function buffers.set_escape(name,pair) if pair == variables.no then visualizer.flush_line = visualizer.normal_flush_line or visualizer.flush_line if trace_visualize then - logs.report("buffers","resetting escape range for visualizer '%s'",name) + report_buffers("resetting escape range for visualizer '%s'",name) end else local start, stop @@ -785,10 +798,10 @@ function buffers.set_escape(name,pair) flush_escaped_line(str,pattern,visualizer.normal_flush_line) end if trace_visualize then - logs.report("buffers","setting escape range for visualizer '%s' to %s -> %s",name,start,stop) + report_buffers("setting escape range for visualizer '%s' to %s -> %s",name,start,stop) end elseif trace_visualize then - logs.report("buffers","problematic escape specification '%s' for visualizer '%s'",pair,name) + report_buffers("problematic escape specification '%s' for visualizer '%s'",pair,name) end end end |