diff options
Diffstat (limited to 'Master/texmf-dist/tex/context/base/mkiv/core-dat.lua')
-rw-r--r-- | Master/texmf-dist/tex/context/base/mkiv/core-dat.lua | 62 |
1 files changed, 20 insertions, 42 deletions
diff --git a/Master/texmf-dist/tex/context/base/mkiv/core-dat.lua b/Master/texmf-dist/tex/context/base/mkiv/core-dat.lua index b497501598b..fa4d089d057 100644 --- a/Master/texmf-dist/tex/context/base/mkiv/core-dat.lua +++ b/Master/texmf-dist/tex/context/base/mkiv/core-dat.lua @@ -15,7 +15,6 @@ local tonumber, tostring, type = tonumber, tostring, type local context = context local commands = commands -local ctx_latelua = context.latelua 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) @@ -36,7 +35,6 @@ 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() @@ -108,9 +106,6 @@ end datasets.setdata = setdata function datasets.extend(name,tag) - if type(name) == "table" then - name, tag = name.name, name.tag - end local set = sets[name] local order = set.order + 1 local realpage = texgetcount("realpageno") @@ -151,8 +146,10 @@ local function setdataset(settings) local name, tag = setdata(settings) if settings.delay ~= v_yes then -- + elseif type(tag) == "number" then + context(new_latelua(formatters["job.datasets.extend(%q,%i)"](name,tag))) else - context(new_latelua { action = job.datasets.extend, name = name, tag = tag }) + context(new_latelua(formatters["job.datasets.extend(%q,%q)"](name,tag))) end end @@ -245,7 +242,9 @@ local function setstate(settings) return name, tag, data end -local function extend(name,tag) +pagestates.setstate = setstate + +function pagestates.extend(name,tag) local realpage = texgetcount("realpageno") if trace_pagestates then report_pagestate("action %a, name %a, tag %a, preset %a","synchronize",name,tag,realpage) @@ -253,7 +252,7 @@ local function extend(name,tag) tobesaved[name][tag] = realpage end -local function realpage(name,tag,default) +function pagestates.realpage(name,tag,default) local t = collected[name] if t then t = t[tag] or t[tonumber(tag)] @@ -268,36 +267,21 @@ local function realpage(name,tag,default) return default end -local function realpageorder(name,tag) - local t = collected[name] - if t then - local p = t[tag] - if p then - local n = 1 - for i=tag-1,1,-1 do - if t[i] == p then - n = n +1 - end - end - return n - end +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))) + else + context(new_latelua(formatters["job.pagestates.extend(%q,%q)"](name,tag))) end - 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) +local function pagestaterealpage(name,tag) + local t = collected[name] + t = t and (t[tag] or t[tonumber(tag)]) + if t then + context(t) + end end local function setpagestaterealpageno(name,tag) @@ -320,7 +304,7 @@ implement { implement { name = "pagestaterealpage", - actions = { realpage, context }, + actions = pagestaterealpage, arguments = "2 strings", } @@ -329,9 +313,3 @@ implement { actions = setpagestaterealpageno, arguments = "2 strings", } - -implement { - name = "pagestaterealpageorder", - actions = { realpageorder, context }, - arguments = { "string", "integer" } -} |