summaryrefslogtreecommitdiff
path: root/tex/context/base/mkiv/core-dat.lua
diff options
context:
space:
mode:
Diffstat (limited to 'tex/context/base/mkiv/core-dat.lua')
-rw-r--r--tex/context/base/mkiv/core-dat.lua58
1 files changed, 22 insertions, 36 deletions
diff --git a/tex/context/base/mkiv/core-dat.lua b/tex/context/base/mkiv/core-dat.lua
index 5f9bc9d08..dbb14c36e 100644
--- a/tex/context/base/mkiv/core-dat.lua
+++ b/tex/context/base/mkiv/core-dat.lua
@@ -36,6 +36,7 @@ local v_yes = interfaces.variables.yes
local new_latelua = nodes.pool.latelua
local implement = interfaces.implement
+local getnamespace = interfaces.getnamespace
local collected = allocate()
local tobesaved = allocate()
@@ -243,8 +244,6 @@ local function setstate(settings)
return name, tag, data
end
-pagestates.setstate = setstate
-
local function extend(name,tag)
local realpage = texgetcount("realpageno")
if trace_pagestates then
@@ -253,9 +252,7 @@ local function extend(name,tag)
tobesaved[name][tag] = realpage
end
-pagestates.extend = extend
-
-function pagestates.realpage(name,tag,default)
+local function realpage(name,tag,default)
local t = collected[name]
if t then
t = t[tag] or t[tonumber(tag)]
@@ -270,32 +267,7 @@ function pagestates.realpage(name,tag,default)
return default
end
--- local function setpagestate(settings)
--- local name, tag = setstate(settings)
--- if type(tag) == "number" then
--- context(new_latelua(formatters["job.pagestates.extend(%q,%i)"](name,tag)))
--- else
--- context(new_latelua(formatters["job.pagestates.extend(%q,%q)"](name,tag)))
--- end
--- end
-
-local function setpagestate(settings)
- local name, tag = setstate(settings)
- -- context(new_latelua(function() extend(name,tag) end))
- ctx_latelua(function() extend(name,tag) end)
-end
-
-local function pagestaterealpage(name,tag)
- local t = collected[name]
- if t then
- t = t[tag] or t[tonumber(tag)]
- if t then
- context(t)
- end
- end
-end
-
-local function pagestaterealpageorder(name,tag)
+local function realpageorder(name,tag)
local t = collected[name]
if t then
local p = t[tag]
@@ -306,11 +278,25 @@ local function pagestaterealpageorder(name,tag)
n = n +1
end
end
- context(n)
- return
+ return n
end
end
- context(0)
+ return 0
+end
+
+pagestates.setstate = setstate
+pagestates.extend = extend
+pagestates.realpage = realpage
+pagestates.realpageorder = realpageorder
+
+function pagestates.countervalue(name)
+ return name and texgetcount(getnamespace("pagestatecounter") .. name) or 0
+end
+
+local function setpagestate(settings)
+ local name, tag = setstate(settings)
+ -- context(new_latelua(function() extend(name,tag) end))
+ ctx_latelua(function() extend(name,tag) end)
end
local function setpagestaterealpageno(name,tag)
@@ -333,7 +319,7 @@ implement {
implement {
name = "pagestaterealpage",
- actions = pagestaterealpage,
+ actions = { realpage, context },
arguments = "2 strings",
}
@@ -345,6 +331,6 @@ implement {
implement {
name = "pagestaterealpageorder",
- actions = pagestaterealpageorder,
+ actions = { realpageorder, context },
arguments = { "string", "integer" }
}