summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/context/base/publ-dat.lua
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/context/base/publ-dat.lua')
-rw-r--r--Master/texmf-dist/tex/context/base/publ-dat.lua24
1 files changed, 13 insertions, 11 deletions
diff --git a/Master/texmf-dist/tex/context/base/publ-dat.lua b/Master/texmf-dist/tex/context/base/publ-dat.lua
index 1e651c45bcd..5d19003ce64 100644
--- a/Master/texmf-dist/tex/context/base/publ-dat.lua
+++ b/Master/texmf-dist/tex/context/base/publ-dat.lua
@@ -327,30 +327,33 @@ function publications.parenttag(dataset,tag)
local parent = tags[1]
local current = datasets[dataset]
local luadata = current.luadata
+ local details = current.details
local first = luadata[parent]
if first then
- local combined = first.combined
- if not combined then
- combined = { }
- first.combined = combined
+ local detail = details[parent]
+ local children = detail.children
+ if not children then
+ children = { }
+ detail.children = children
end
-- add new ones but only once
for i=2,#tags do
local tag = tags[i]
- for j=1,#combined do
- if combined[j] == tag then
+ for j=1,#children do
+ if children[j] == tag then
tag = false
end
end
if tag then
local entry = luadata[tag]
if entry then
- combined[#combined+1] = tag
- if combined[tag] then
- report("error in combination, dataset %a, tag %a, parent %a, ignored %a",dataset,tag,combined[tag],parent)
+ local detail = details[tag]
+ children[#children+1] = tag
+ if detail.parent then
+ report("error in combination, dataset %a, tag %a, parent %a, ignored %a",dataset,tag,detail.parent,parent)
else
report("combining, dataset %a, tag %a, parent %a",dataset,tag,parent)
- current.combined[tag] = parent
+ detail.parent = parent
end
end
end
@@ -388,7 +391,6 @@ function publications.new(name)
-- used specifications
},
suffixed = false,
- combined = { },
}
-- we delay details till we need it (maybe we just delay the
-- individual fields but that is tricky as there can be some