summaryrefslogtreecommitdiff
path: root/tex/context/base/mkxl/strc-reg.lmt
diff options
context:
space:
mode:
Diffstat (limited to 'tex/context/base/mkxl/strc-reg.lmt')
-rw-r--r--tex/context/base/mkxl/strc-reg.lmt18
1 files changed, 17 insertions, 1 deletions
diff --git a/tex/context/base/mkxl/strc-reg.lmt b/tex/context/base/mkxl/strc-reg.lmt
index 6e26f6f37..ccb43bc28 100644
--- a/tex/context/base/mkxl/strc-reg.lmt
+++ b/tex/context/base/mkxl/strc-reg.lmt
@@ -497,7 +497,22 @@ local function preprocessentries(rawdata)
if not ok and etk == "" then
entries[k] = nil
else
- entries[k] = { etk or "", ktk ~= "" and ktk or false, ptk ~= "" and ptk or false }
+ if not etk then
+ etk = ""
+ end
+ -- we save some space by pruning
+ if ptk == "" then
+ ptk = nil
+ end
+ -- we save even more space by pruning
+ if ktk == "" then
+ if ptk then
+ ktk = false
+ else
+ ktk = nil
+ end
+ end
+ entries[k] = { etk, ktk, ptk }
ok = true
end
end
@@ -563,6 +578,7 @@ local function storeregister(rawdata) -- metadata, references, entries
--
local data = notsaved and collected[name] or tobesaved[name]
local entries = data.entries
+ --
internalreferences[internal] = rawdata
preprocessentries(rawdata)
entries[#entries+1] = rawdata