summaryrefslogtreecommitdiff
path: root/tex/context/base/mkiv/page-ini.lua
diff options
context:
space:
mode:
authorHans Hagen <pragma@wxs.nl>2017-08-06 17:11:19 +0200
committerContext Git Mirror Bot <phg42.2a@gmail.com>2017-08-06 17:11:19 +0200
commit5c6090af6fb0808017d6f2fe263b90e2efa0ae5e (patch)
tree84f61dc4994ba9c2376d829b6b71bb3b7e0bb9a5 /tex/context/base/mkiv/page-ini.lua
parent817e18d3f6969b1b50b4883ec4d5bb05c985db88 (diff)
downloadcontext-5c6090af6fb0808017d6f2fe263b90e2efa0ae5e.tar.gz
2017-08-06 16:19:00
Diffstat (limited to 'tex/context/base/mkiv/page-ini.lua')
-rw-r--r--tex/context/base/mkiv/page-ini.lua51
1 files changed, 51 insertions, 0 deletions
diff --git a/tex/context/base/mkiv/page-ini.lua b/tex/context/base/mkiv/page-ini.lua
new file mode 100644
index 000000000..1aeae8f09
--- /dev/null
+++ b/tex/context/base/mkiv/page-ini.lua
@@ -0,0 +1,51 @@
+if not modules then modules = { } end modules ['page-ini'] = {
+ version = 1.001,
+ comment = "companion to page-ini.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local tonumber, rawget = tonumber, rawget
+local gmatch = string.gmatch
+
+local texgetcount = tex.getcount
+
+local ctx_testcase = commands.testcase
+
+local data = table.setmetatableindex("table")
+local last = 0
+
+interfaces.implement {
+ name = "markpage",
+ arguments = { "string", "string" },
+ actions = function(name,list)
+ local realpage = texgetcount("realpageno")
+ if list and list ~= "" then
+ for sign, page in gmatch(list,"([%+%-])(%d+)") do
+ page = tonumber(page)
+ if page then
+ if sign == "+" then
+ page = realpage + page
+ end
+ data[page][name] = true
+ end
+ end
+ else
+ data[realpage][name] = true
+ end
+ end
+}
+
+interfaces.implement {
+ name = "doifelsemarkedpage",
+ arguments = "string",
+ actions = function(name)
+ local realpage = texgetcount("realpageno")
+ for i=last,realpage-1 do
+ data[i] = nil
+ end
+ local pagedata = rawget(data,realpage)
+ ctx_testcase(pagedata and pagedata[name])
+ end
+}