summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/context/base/font-chk.lua
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/context/base/font-chk.lua')
-rw-r--r--Master/texmf-dist/tex/context/base/font-chk.lua23
1 files changed, 16 insertions, 7 deletions
diff --git a/Master/texmf-dist/tex/context/base/font-chk.lua b/Master/texmf-dist/tex/context/base/font-chk.lua
index 32fdf88940a..e3679f06dba 100644
--- a/Master/texmf-dist/tex/context/base/font-chk.lua
+++ b/Master/texmf-dist/tex/context/base/font-chk.lua
@@ -7,14 +7,19 @@ if not modules then modules = { } end modules ['font-chk'] = {
}
-- possible optimization: delayed initialization of vectors
+-- move to the nodes namespace
-fonts = fonts or { }
-fonts.checkers = fonts.checkers or { }
+local report_fonts = logs.reporter("fonts","checking")
+
+local fonts = fonts
+fonts.checkers = fonts.checkers or { }
local checkers = fonts.checkers
-local fontdata = fonts.ids
+
+local fontdata = fonts.hashes.identifiers
local is_character = characters.is_character
local chardata = characters.data
+local tasks = nodes.tasks
local glyph = node.id('glyph')
local traverse_id = node.traverse_id
@@ -26,7 +31,9 @@ local remove_node = nodes.remove
checkers.enabled = false
checkers.delete = false
-function fonts.register_message(font,char,message)
+-- to tfmdata.properties ?
+
+local function onetimemessage(font,char,message)
local tfmdata = fontdata[font]
local shared = tfmdata.shared
local messages = shared.messages
@@ -40,11 +47,13 @@ function fonts.register_message(font,char,message)
messages[message] = category
end
if not category[char] then
- logs.report("fonts","char U+%04X in font '%s' with id %s: %s",char,tfmdata.fullname,font,message)
+ report_fonts("char U+%05X in font '%s' with id %s: %s",char,tfmdata.properties.fullname,font,message)
category[char] = true
end
end
+fonts.loggers.onetimemessage = onetimemessage
+
function checkers.missing(head)
if checkers.enabled then
local lastfont, characters, found = nil, nil, nil
@@ -55,9 +64,9 @@ function checkers.missing(head)
end
if not characters[char] and is_character[chardata[char].category] then
if checkers.delete then
- fonts.register_message(font,char,"missing (will be deleted)")
+ onetimemessage(font,char,"missing (will be deleted)")
else
- fonts.register_message(font,char,"missing")
+ onetimemessage(font,char,"missing")
end
if not found then
found = { n }