diff options
-rwxr-xr-x | mkluatexfontdb.lua | 10 | ||||
-rw-r--r-- | otfl-font-nms.lua | 95 | ||||
-rw-r--r-- | otfl-luat-ovr.lua | 34 |
3 files changed, 69 insertions, 70 deletions
diff --git a/mkluatexfontdb.lua b/mkluatexfontdb.lua index ec8396f..956fa18 100755 --- a/mkluatexfontdb.lua +++ b/mkluatexfontdb.lua @@ -24,11 +24,11 @@ _G.config = _G.config or { } local config = _G.config config.lualibs = config.lualibs or { } config.lualibs.prefer_merged = false -config.lualibs.load_extended = true +config.lualibs.load_extended = false require"lualibs" require"otfl-basics-gen.lua" -require"otfl-luat-ovr.lua" +require"otfl-luat-ovr.lua" --- this populates the logs.* namespace require"otfl-font-nms" require"alt_getopt" @@ -84,7 +84,9 @@ local short_options = "fqpvVh" local force_reload = nil local function process_cmdline() - local options, _, _ = alt_getopt.get_ordered_opts (arg, short_options, long_options) + local options, _, _ = alt_getopt.get_ordered_opts (arg, + short_options, + long_options) local log_level = 1 for _,v in next, options do if v == "q" then @@ -105,7 +107,7 @@ local function process_cmdline() force_reload = 1 end end - names.set_log_level(log_level) + logs.set_loglevel(log_level) end local function generate(force) diff --git a/otfl-font-nms.lua b/otfl-font-nms.lua index 856046c..b2b5390 100644 --- a/otfl-font-nms.lua +++ b/otfl-font-nms.lua @@ -42,7 +42,6 @@ local utfgsub = unicode.utf8.gsub local suppress_output = false local trace_short = false --tracing adapted to rebuilding of the database inside a document local trace_search = false --trackers.register("names.search", function(v) trace_search = v end) -local trace_loading = false --trackers.register("names.loading", function(v) trace_loading = v end) local function sanitize(str) if str then @@ -244,37 +243,11 @@ end names.resolvespec = names.resolve -function names.set_log_level(level) - if level == 0 then - suppress_output = true - elseif level == 2 then - trace_loading = true - elseif level >= 3 then - trace_loading = true - trace_search = true - end -end - -local function log (category, fmt, ...) - if not suppress_output then - if fmt then - texio.write_nl(format("luaotfload | %s: %s", category, format(fmt, ...))) - elseif category then - texio.write_nl(format("luaotfload | %s", category)) - else - texio.write_nl(format("luaotfload |")) - end - io.flush() - end -end - local function font_fullinfo(filename, subfont, texmf) local t = { } local f = fontloader.open(filename, subfont) if not f then - if trace_loading then - logs.report("error", "failed to open %s", filename) - end + logs.names_loading("error", "failed to open %s", filename) return end local m = fontloader.to_table(f) @@ -304,9 +277,7 @@ local function font_fullinfo(filename, subfont, texmf) end else -- no names table, propably a broken font - if trace_loading then - logs.report("broken font rejected", "%s", basefile) - end + logs.names_loading("broken font rejected", "%s", basefile) return end t.fontname = m.fontname @@ -359,9 +330,7 @@ local function load_font(filename, fontnames, newfontnames, texmf) newmappings[#newmappings+1] = mappings[v] newstatus[basefile].index[index+1] = #newmappings end - if trace_loading then - logs.report("font already indexed", "%s", basefile) - end + logs.names_loading("font already indexed", "%s", basefile) return end local info = fontloader.info(filename) @@ -396,9 +365,7 @@ local function load_font(filename, fontnames, newfontnames, texmf) newstatus[basefile].index[1] = index end else - if trace_loading then - logs.report("failed to load", "%s", basefile) - end + logs.names_loading("failed to load", "%s", basefile) end end end @@ -479,33 +446,31 @@ end local installed_fonts_scanned = false local function scan_installed_fonts(fontnames, newfontnames) - -- Try to query and add font list from operating system. - -- This uses the lualatex-platform module. - logs.info("Scanning fonts known to operating system...") - local fonts = get_installed_fonts() - if fonts and #fonts > 0 then - installed_fonts_scanned = true - if trace_search then - logs.report("operating system fonts found", "%d", #fonts) - end - for key, value in next, fonts do - local file = value.path - if file then - local ext = extname(file) - if ext and font_extensions_set[ext] then - file = path_normalize(file) - if trace_loading then - logs.report("loading font", "%s", file) - end - load_font(file, fontnames, newfontnames, false) + -- Try to query and add font list from operating system. + -- This uses the lualatex-platform module. + logs.info("Scanning fonts known to operating system...") + local fonts = get_installed_fonts() + if fonts and #fonts > 0 then + installed_fonts_scanned = true + if trace_search then + logs.report("operating system fonts found", "%d", #fonts) + end + for key, value in next, fonts do + local file = value.path + if file then + local ext = extname(file) + if ext and font_extensions_set[ext] then + file = path_normalize(file) + logs.names_loading("loading font", "%s", file) + load_font(file, fontnames, newfontnames, false) + end end - end - end - else - if trace_search then - logs.report("Could not retrieve list of installed fonts") - end - end + end + else + if trace_search then + logs.report("Could not retrieve list of installed fonts") + end + end end local function scan_dir(dirname, fontnames, newfontnames, texmf) @@ -539,9 +504,7 @@ local function scan_dir(dirname, fontnames, newfontnames, texmf) for _,file in next, list do file = path_normalize(file) - if trace_loading then - logs.report("loading font", "%s", file) - end + logs.names_loading("loading font", "%s", file) load_font(file, fontnames, newfontnames, texmf) end end diff --git a/otfl-luat-ovr.lua b/otfl-luat-ovr.lua index 984dbf5..63ad6a7 100644 --- a/otfl-luat-ovr.lua +++ b/otfl-luat-ovr.lua @@ -11,9 +11,32 @@ local module_name = "luaotfload" local texiowrite_nl = texio.write_nl local stringformat = string.format +local tableconcat = table.concat local ioflush = io.flush local dummyfunction = function() end +--[[doc-- +We recreate the verbosity levels previously implemented in font-nms: + + ========================================================== + lvl arg trace_loading trace_search suppress_output + ---------------------------------------------------------- + (0) -> -q ⊥ ⊥ ⊤ + (1) -> ∅ ⊥ ⊥ ⊥ + (2) -> -v ⊤ ⊥ ⊥ + (>2) -> -vv ⊤ ⊤ ⊥ + ========================================================== + +--doc]]-- +local loglevel = 1 --- default + +local set_loglevel = function (n) + if type(n) == "number" then + loglevel = n + end +end +logs.set_loglevel = set_loglevel + function logs.report(category,fmt,...) if fmt then texiowrite_nl('log', stringformat("%s | %s: %s",module_name,category,stringformat(fmt,...))) @@ -35,3 +58,14 @@ function logs.info(category,fmt,...) ioflush() end +logs.names_loading = function (category, fmt, ...) + if loglevel > 1 then + local res = { module_name, " |" } + if category then res[#res+1] = " " .. category end + if fmt then res[#res+1] = ": " .. stringformat(fmt, ...) end + texiowrite_nl(tableconcat(res)) + ioflush() + end +end + +-- vim:tw=71:sw=4:ts=4:expandtab |