diff options
Diffstat (limited to 'tex/context/base/mkxl/strc-reg.lmt')
-rw-r--r-- | tex/context/base/mkxl/strc-reg.lmt | 18 |
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 |