diff options
Diffstat (limited to 'tex/context/base/font-log.lua')
-rw-r--r-- | tex/context/base/font-log.lua | 172 |
1 files changed, 86 insertions, 86 deletions
diff --git a/tex/context/base/font-log.lua b/tex/context/base/font-log.lua index 3a2a1c5de..41da75378 100644 --- a/tex/context/base/font-log.lua +++ b/tex/context/base/font-log.lua @@ -1,86 +1,86 @@ -if not modules then modules = { } end modules ['font-log'] = {
- version = 1.001,
- comment = "companion to font-ini.mkiv",
- author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
- copyright = "PRAGMA ADE / ConTeXt Development Team",
- license = "see context related readme files"
-}
-
-local next, format, lower, concat = next, string.format, string.lower, table.concat
-
-local trace_defining = false trackers.register("fonts.defining", function(v) trace_defining = v end)
-local report_defining = logs.reporter("fonts","defining")
-
-local basename = file.basename
-
-local fonts = fonts
-local loggers = { }
-fonts.loggers = loggers
-local usedfonts = utilities.storage.allocate()
------ loadedfonts = utilities.storage.allocate()
-
---[[ldx--
-<p>The following functions are used for reporting about the fonts
-used. The message itself is not that useful in regular runs but since
-we now have several readers it may be handy to know what reader is
-used for which font.</p>
---ldx]]--
-
-function loggers.onetimemessage(font,char,message,reporter)
- local tfmdata = fonts.hashes.identifiers[font]
- local shared = tfmdata.shared
- local messages = shared.messages
- if not messages then
- messages = { }
- shared.messages = messages
- end
- local category = messages[message]
- if not category then
- category = { }
- messages[message] = category
- end
- if not category[char] then
- if not reporter then
- reporter = report_defining
- end
- reporter("char %U in font %a with id %s: %s",char,tfmdata.properties.fullname,font,message)
- category[char] = true
- end
-end
-
-function loggers.register(tfmdata,source,specification) -- save file name in spec here ! ! ! ! ! !
- if tfmdata and specification and specification.specification then
- local name = lower(specification.name)
- if trace_defining and not usedfonts[name] then
- report_defining("registering %a as %a, used %a",file.basename(specification.name),source,file.basename(specification.filename))
- end
- specification.source = source
- -- loadedfonts[lower(specification.specification)] = specification
- usedfonts[lower(specification.filename or specification.name)] = source
- end
-end
-
-function loggers.format(name) -- should be avoided
- return usedfonts[name] or "unknown"
-end
-
-statistics.register("loaded fonts", function()
- if next(usedfonts) then
- local t, n = { }, 0
- local treatmentdata = fonts.treatments.data
- for name, used in table.sortedhash(usedfonts) do
- n = n + 1
- local base = basename(name)
- if complete then
- t[n] = format("%s -> %s",used,base)
- else
- t[n] = base
- end
- local treatment = treatmentdata[base]
- if treatment and treatment.comment then
- t[n] = format("%s (%s)",t[n],treatment.comment)
- end
- end
- return n > 0 and format("%s files: %s",n,concat(t,", ")) or "none"
- end
-end)
+if not modules then modules = { } end modules ['font-log'] = { + version = 1.001, + comment = "companion to font-ini.mkiv", + author = "Hans Hagen, PRAGMA-ADE, Hasselt NL", + copyright = "PRAGMA ADE / ConTeXt Development Team", + license = "see context related readme files" +} + +local next, format, lower, concat = next, string.format, string.lower, table.concat + +local trace_defining = false trackers.register("fonts.defining", function(v) trace_defining = v end) +local report_defining = logs.reporter("fonts","defining") + +local basename = file.basename + +local fonts = fonts +local loggers = { } +fonts.loggers = loggers +local usedfonts = utilities.storage.allocate() +----- loadedfonts = utilities.storage.allocate() + +--[[ldx-- +<p>The following functions are used for reporting about the fonts +used. The message itself is not that useful in regular runs but since +we now have several readers it may be handy to know what reader is +used for which font.</p> +--ldx]]-- + +function loggers.onetimemessage(font,char,message,reporter) + local tfmdata = fonts.hashes.identifiers[font] + local shared = tfmdata.shared + local messages = shared.messages + if not messages then + messages = { } + shared.messages = messages + end + local category = messages[message] + if not category then + category = { } + messages[message] = category + end + if not category[char] then + if not reporter then + reporter = report_defining + end + reporter("char %U in font %a with id %s: %s",char,tfmdata.properties.fullname,font,message) + category[char] = true + end +end + +function loggers.register(tfmdata,source,specification) -- save file name in spec here ! ! ! ! ! ! + if tfmdata and specification and specification.specification then + local name = lower(specification.name) + if trace_defining and not usedfonts[name] then + report_defining("registering %a as %a, used %a",file.basename(specification.name),source,file.basename(specification.filename)) + end + specification.source = source + -- loadedfonts[lower(specification.specification)] = specification + usedfonts[lower(specification.filename or specification.name)] = source + end +end + +function loggers.format(name) -- should be avoided + return usedfonts[name] or "unknown" +end + +statistics.register("loaded fonts", function() + if next(usedfonts) then + local t, n = { }, 0 + local treatmentdata = fonts.treatments.data + for name, used in table.sortedhash(usedfonts) do + n = n + 1 + local base = basename(name) + if complete then + t[n] = format("%s -> %s",used,base) + else + t[n] = base + end + local treatment = treatmentdata[base] + if treatment and treatment.comment then + t[n] = format("%s (%s)",t[n],treatment.comment) + end + end + return n > 0 and format("%s files: %s",n,concat(t,", ")) or "none" + end +end) |