diff options
author | Hans Hagen <pragma@wxs.nl> | 2017-08-06 17:11:19 +0200 |
---|---|---|
committer | Context Git Mirror Bot <phg42.2a@gmail.com> | 2017-08-06 17:11:19 +0200 |
commit | 5c6090af6fb0808017d6f2fe263b90e2efa0ae5e (patch) | |
tree | 84f61dc4994ba9c2376d829b6b71bb3b7e0bb9a5 /tex/context/base/mkiv/page-ini.lua | |
parent | 817e18d3f6969b1b50b4883ec4d5bb05c985db88 (diff) | |
download | context-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.lua | 51 |
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 +} |