summaryrefslogtreecommitdiff
path: root/tex/context/base/strc-ref.lua
diff options
context:
space:
mode:
authorContext Git Mirror Bot <phg42.2a@gmail.com>2015-04-15 02:15:05 +0200
committerContext Git Mirror Bot <phg42.2a@gmail.com>2015-04-15 02:15:05 +0200
commitd3c8d09b0a9cd2e1f2fd2680b6a6bb7369c67a7a (patch)
tree6fa0ba84744c974278d07f0f05aacf321ecd1feb /tex/context/base/strc-ref.lua
parent2ba81259a75af1ae03dfd8ee29464274081fc48b (diff)
downloadcontext-d3c8d09b0a9cd2e1f2fd2680b6a6bb7369c67a7a.tar.gz
2015-04-15 01:46:00
Diffstat (limited to 'tex/context/base/strc-ref.lua')
-rw-r--r--tex/context/base/strc-ref.lua30
1 files changed, 20 insertions, 10 deletions
diff --git a/tex/context/base/strc-ref.lua b/tex/context/base/strc-ref.lua
index 5174b289d..b6f2e9a37 100644
--- a/tex/context/base/strc-ref.lua
+++ b/tex/context/base/strc-ref.lua
@@ -1976,17 +1976,17 @@ function references.setandgetattribute(data) -- maybe do internal automatically
if ndat then
local numbers = ndat.numbers
if type(numbers) == "string" then
- ndat.numbers = structures.counters.compact(numbers,nil,true)
+ ndat.numbers = counters.compact(numbers,nil,true)
end
- data.numberdata = structures.helpers.simplify(ndat)
+ data.numberdata = helpers.simplify(ndat)
end
local pdat = data.prefixdata
if pdat then
- data.prefixdata = structures.helpers.simplify(pdat)
+ data.prefixdata = helpers.simplify(pdat)
end
local udat = data.userdata
if type(udat) == "string" then
- data.userdata = structures.helpers.touserdata(udat)
+ data.userdata = helpers.touserdata(udat)
end
if not rdat.block then
rdat.block = structures.sections.currentblock()
@@ -2075,17 +2075,27 @@ end
references.currentmetadata = currentmetadata
local function getcurrentprefixspec(default)
+ local data = currentreference and currentreference.i
+ local metadata = data and data.metadata
return
- currentmetadata("kind") or "?",
- currentmetadata("name") or "?",
- default or "?"
+ metatadata and metadata.kind or "?",
+ metatadata and metadata.name or "?",
+ default or "?"
end
references.getcurrentprefixspec = getcurrentprefixspec
+-- implement {
+-- name = "getcurrentprefixspec",
+-- actions = { getcurrentprefixspec, context }, -- returns 3 arguments
+-- arguments = "string",
+-- }
+
implement {
name = "getcurrentprefixspec",
- actions = { getcurrentprefixspec, context }, -- returns 3 arguments
+ actions = function(tag)
+ context("{%s}{%s}{%s}",getcurrentprefixspec(tag))
+ end,
arguments = "string",
}
@@ -2101,7 +2111,7 @@ filters.text = textfilters
filters.full = fullfilters
filters.section = sectionfilters
-local function filterreference(name,...) -- number page title ...
+local function filterreference(name,prefixspec,numberspec) -- number page title ...
local data = currentreference and currentreference.i -- maybe we should take realpage from here
if data then
if name == "realpage" then
@@ -2116,7 +2126,7 @@ local function filterreference(name,...) -- number page title ...
if trace_referencing then
report_references("name %a, kind %a, using dedicated filter",name,kind)
end
- filter(data,name,...)
+ filter(data,name,prefixspec,numberspec)
elseif trace_referencing then
report_references("name %a, kind %a, using generic filter",name,kind)
end