diff options
author | Marius <mariausol@gmail.com> | 2010-09-03 12:35:26 +0300 |
---|---|---|
committer | Marius <mariausol@gmail.com> | 2010-09-03 12:35:26 +0300 |
commit | 16895587e51f8243a7e4dc6185979894fb199d4f (patch) | |
tree | 923fe9fe4d34a11202e06a4258ba71bab6ccde8d /tex/context/base/anch-pos.lua | |
parent | 20da4ce347921be291c8804041bd8756e3bf1707 (diff) | |
download | context-16895587e51f8243a7e4dc6185979894fb199d4f.tar.gz |
beta 2010.09.03 11:05
Diffstat (limited to 'tex/context/base/anch-pos.lua')
-rw-r--r-- | tex/context/base/anch-pos.lua | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/tex/context/base/anch-pos.lua b/tex/context/base/anch-pos.lua index b83550922..28d32089d 100644 --- a/tex/context/base/anch-pos.lua +++ b/tex/context/base/anch-pos.lua @@ -15,22 +15,24 @@ more efficient.</p> local concat, format = table.concat, string.format local texprint, ctxcatcodes = tex.print, tex.ctxcatcodes local lpegmatch = lpeg.match +local allocate, mark = utilities.storage.allocate, utilities.storage.mark + +local collected, tobesaved = allocate(), allocate() local jobpositions = { - collected = { }, - tobesaved = { }, + collected = collected, + tobesaved = tobesaved, } job.positions = jobpositions -local tobesaved, collected = jobpositions.tobesaved, jobpositions.collected - _plib_, _ptbs_, _pcol_ = jobpositions, tobesaved, collected -- global local dx, dy = "0pt", "0pt" local function initializer() - tobesaved, collected = jobpositions.tobesaved, jobpositions.collected -- local + tobesaved = mark(jobpositions.tobesaved) + collected = mark(jobpositions.collected) _ptbs_, _pcol_ = tobesaved, collected -- global local p = collected["page:0"] -- page:1 if p then @@ -39,18 +41,18 @@ local function initializer() end end -job.register('job.positions.collected', jobpositions.tobesaved, initializer) +job.register('job.positions.collected', tobesaved, initializer) function jobpositions.copy(target,source) - jobpositions.collected[target] = jobpositions.collected[source] or tobesaved[source] + collected[target] = collected[source] or tobesaved[source] end function jobpositions.replace(name,...) - jobpositions.collected[name] = {...} + collected[name] = {...} end function jobpositions.doifelse(name) - commands.testcase(jobpositions.collected[name] or tobesaved[name]) + commands.testcase(collected[name] or tobesaved[name]) end function jobpositions.MPp(id) local jpi = collected[id] or tobesaved[id] texprint(ctxcatcodes,(jpi and jpi[1]) or '0' ) end @@ -60,7 +62,6 @@ function jobpositions.MPw(id) local jpi = collected[id] or tobesaved[id] texprin function jobpositions.MPh(id) local jpi = collected[id] or tobesaved[id] texprint(ctxcatcodes,(jpi and jpi[5]) or '0pt') end function jobpositions.MPd(id) local jpi = collected[id] or tobesaved[id] texprint(ctxcatcodes,(jpi and jpi[6]) or '0pt') end - function jobpositions.MPx(id) local jpi = collected[id] or tobesaved[id] local x = jpi and jpi[2] |