From 8e504aea583057b70c34e71cd24af1f8cc648fa1 Mon Sep 17 00:00:00 2001 From: eroux Date: Mon, 1 Mar 2010 11:48:31 +0100 Subject: Now having version in status table too Also stronger checks on status --- mkluatexfontdb.lua | 4 ++-- otfl-font-nms.lua | 14 +++++++++++--- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/mkluatexfontdb.lua b/mkluatexfontdb.lua index 7481252..66fc231 100644 --- a/mkluatexfontdb.lua +++ b/mkluatexfontdb.lua @@ -148,7 +148,7 @@ do_run_fc_cache(run_fc_cache) -- the status table is containing correspondances between absolute path and last modification -- timestamp, it's uses to save time during update, by not reparsing unchanged fonts. -local status = {} +local status = nil local status_file = mkluatexfontdb.directory .. '/' .. "otfl-names-status.lua" if lfs.isfile(status_file) then status = dofile(status_file) @@ -178,7 +178,7 @@ local function generate(force) else fontnames = {} end - fontnames = names.update(fontnames, force, status) + fontnames, status = names.update(fontnames, force, status) log("%s fonts in %s families in the database", #fontnames.mappings, #table.keys(fontnames.families)) io.savedata(savepath, table.serialize(fontnames, true)) diff --git a/otfl-font-nms.lua b/otfl-font-nms.lua index e9b0d4e..15466a1 100644 --- a/otfl-font-nms.lua +++ b/otfl-font-nms.lua @@ -312,6 +312,12 @@ local function fontnames_init() } end +local function status_init() + return { + version = names.version, + } +end + -- The main function, scans everything -- - fontnames is the final table to return -- - force is whether we rebuild it from scratch or not @@ -319,10 +325,12 @@ end local function update(fontnames, force, status) if force then fontnames = fontnames_init() + status = status_init() else - if fontnames and fontnames.version and fontnames.version == names.version then - else + if not fontnames or not fontnames.version or fontnames.version ~= names.version + or not status or not status.version or status.version ~= names.version then fontnames = fontnames_init() + status = status_init() if trace_search then logs.report("no font names database or old one found, generating new one") end @@ -330,7 +338,7 @@ local function update(fontnames, force, status) end fontnames = scan_texmf_tree(fontnames, status) fontnames = scan_os_fonts (fontnames, status) - return fontnames + return fontnames, status end names.scan = scan_dir -- cgit v1.2.3