if not modules then modules = { } end modules ['spac-par'] = { version = 1.001, comment = "companion to spac-par.mkxl", author = "Hans Hagen, PRAGMA-ADE, Hasselt NL", copyright = "PRAGMA ADE / ConTeXt Development Team", license = "see context related readme files" } local context = context local implement = interfaces.implement local collected = utilities.storage.allocate() local tobesaved = utilities.storage.allocate() local jobparwrappers = { collected = collected, tobesaved = tobesaved, } job.parwrappers = jobparwrappers local function initializer() tobesaved = jobparwrappers.tobesaved collected = jobparwrappers.collected end job.register('job.parwrappers.collected', tobesaved, initializer) implement { name = "newparwrapper", arguments = "string", actions = function(id) local t = tobesaved[id] if t then t[#t+1] = 0 else tobesaved[id] = { 0 } end end } implement { name = "setparwrapper", arguments = "string", actions = function(id) local t = tobesaved[id] local n = #t t[n] = t[n] + 1 end } implement { name = "getparwrapper", arguments = "string", public = true, actions = function(id) local t = tobesaved[id] context(t and t[#t] or 0) end } implement { name = "lastparwrapper", arguments = "string", public = true, actions = function(id) local t = collected and collected[id] context(t and t[#t] or 0) end }