From 16aa5a7c87f18a2483d0d61795899f886781b51c Mon Sep 17 00:00:00 2001
From: Karl Berry
Date: Sat, 18 Apr 2015 22:52:45 +0000
Subject: context, from www.pragma-ade.com/context/beta/cont-tmf.zip (18apr15)
git-svn-id: svn://tug.org/texlive/trunk@36923 c570f23f-e606-0410-a88d-b1316a301751
---
Master/texmf-dist/tex/context/base/core-dat.lua | 58 ++++++++++++++++++++++---
1 file changed, 52 insertions(+), 6 deletions(-)
(limited to 'Master/texmf-dist/tex/context/base/core-dat.lua')
diff --git a/Master/texmf-dist/tex/context/base/core-dat.lua b/Master/texmf-dist/tex/context/base/core-dat.lua
index 242d362d0f6..ca6ec43730c 100644
--- a/Master/texmf-dist/tex/context/base/core-dat.lua
+++ b/Master/texmf-dist/tex/context/base/core-dat.lua
@@ -13,7 +13,8 @@ replaces the twopass data mechanism.
local tonumber, tostring, type = tonumber, tostring, type
-local context, commands = context, commands
+local context = context
+local commands = commands
local trace_datasets = false trackers.register("job.datasets" , function(v) trace_datasets = v end)
local trace_pagestates = false trackers.register("job.pagestates", function(v) trace_pagestates = v end)
@@ -33,6 +34,8 @@ local v_yes = interfaces.variables.yes
local new_latelua = nodes.pool.latelua
+local implement = interfaces.implement
+
local collected = allocate()
local tobesaved = allocate()
@@ -138,7 +141,7 @@ function datasets.getdata(name,tag,key,default)
return default
end
-function commands.setdataset(settings)
+local function setdataset(settings)
settings.convert = true
local name, tag = setdata(settings)
if settings.delay ~= v_yes then
@@ -150,7 +153,7 @@ function commands.setdataset(settings)
end
end
-function commands.datasetvariable(name,tag,key)
+local function datasetvariable(name,tag,key)
local t = collected[name]
if t == nil then
if trace_datasets then
@@ -175,6 +178,25 @@ function commands.datasetvariable(name,tag,key)
end
end
+implement {
+ name = "setdataset",
+ actions = setdataset,
+ arguments = {
+ {
+ { "name" },
+ { "tag" },
+ { "delay" },
+ { "data" },
+ }
+ }
+}
+
+implement {
+ name = "datasetvariable",
+ actions = datasetvariable,
+ arguments = { "string", "string", "string" }
+}
+
--[[ldx--
We also provide an efficient variant for page states.
--ldx]]--
@@ -245,7 +267,7 @@ function pagestates.realpage(name,tag,default)
return default
end
-function commands.setpagestate(settings)
+local function setpagestate(settings)
local name, tag, data = setstate(settings)
if type(tag) == "number" then
context(new_latelua(formatters["job.pagestates.extend(%q,%i)"](name,tag)))
@@ -254,7 +276,7 @@ function commands.setpagestate(settings)
end
end
-function commands.pagestaterealpage(name,tag)
+local function pagestaterealpage(name,tag)
local t = collected[name]
t = t and (t[tag] or t[tonumber(tag)])
if t then
@@ -262,8 +284,32 @@ function commands.pagestaterealpage(name,tag)
end
end
-function commands.setpagestaterealpageno(name,tag)
+local function setpagestaterealpageno(name,tag)
local t = collected[name]
t = t and (t[tag] or t[tonumber(tag)])
texsetcount("realpagestateno",t or texgetcount("realpageno"))
end
+
+implement {
+ name = "setpagestate",
+ actions = setpagestate,
+ arguments = {
+ {
+ { "name" },
+ { "tag" },
+ { "delay" },
+ }
+ }
+}
+
+implement {
+ name = "pagestaterealpage",
+ actions = pagestaterealpage,
+ arguments = { "string", "string" }
+}
+
+implement {
+ name = "setpagestaterealpageno",
+ actions = setpagestaterealpageno,
+ arguments = { "string", "string" }
+}
--
cgit v1.2.3