diff options
| author | Khaled Hosny <khaledhosny@eglug.org> | 2010-03-12 21:37:11 +0200 | 
|---|---|---|
| committer | Khaled Hosny <khaledhosny@eglug.org> | 2010-03-12 21:39:07 +0200 | 
| commit | 1cbe646d6d26e61bad75a5f748f63f47d484479a (patch) | |
| tree | 8f7930731de620e1a14a5507da838a84dcdae827 | |
| parent | 1093435c84e2c1a559ea64c80efbf77950775b04 (diff) | |
| download | luaotfload-1cbe646d6d26e61bad75a5f748f63f47d484479a.tar.gz | |
Isolate database loading code and clean it a bit
| -rw-r--r-- | mkluatexfontdb.lua | 12 | ||||
| -rw-r--r-- | otfl-font-nms.lua | 31 | 
2 files changed, 22 insertions, 21 deletions
| diff --git a/mkluatexfontdb.lua b/mkluatexfontdb.lua index d4782ea..ad50996 100644 --- a/mkluatexfontdb.lua +++ b/mkluatexfontdb.lua @@ -27,12 +27,8 @@ local version = '1.07' -- same version number as luaotfload  mkluatexfontdb = { } -- just for now, elie is rewriting it anyway  local names    = fonts.names --- the path to add to TEXMFVAR or TEXMFSYSVAR to get the final directory in --- normal cases -mkluatexfontdb.subtexmfvardir = "/scripts/luatexfontdb/" -  -- the directory in which the database will be saved, can be overwritten -mkluatexfontdb.directory = kpse.expand_var("$TEXMFVAR") .. mkluatexfontdb.subtexmfvardir +mkluatexfontdb.directory = names.path.localdir  local log      = logs.report @@ -134,11 +130,11 @@ local function process_cmdline()          elseif v == "fc-cache" then              run_fc_cache = 1          elseif v == "sys" then -            mkluatexfontdb.directory = kpse.expand_var("$TEXMFSYSVAR") .. mkluatexfontdb.subtexmfvardir +            mkluatexfontdb.directory = names.path.systemdir          end      end      if string.match(arg[0], '-sys') then -        mkluatexfontdb.directory = kpse.expand_var("$TEXMFSYSVAR") .. mkluatexfontdb.subtexmfvardir +        mkluatexfontdb.directory = names.path.systemdir      end      mkluatexfontdb.directory = fonts.path_normalize(mkluatexfontdb.directory)      names.set_log_level(log_level) @@ -166,7 +162,7 @@ local function generate(force, purge)              os.exit(1)          end      end -    savepath = savepath .. '/' .. names.basename +    savepath = savepath .. '/' .. names.path.basename      local fh = io.open(savepath, 'a+')      if not fh then          texio.write_nl(string.format("Error: cannot write file '%s', exiting.\n", savepath)) diff --git a/otfl-font-nms.lua b/otfl-font-nms.lua index 3239f0b..b70b88b 100644 --- a/otfl-font-nms.lua +++ b/otfl-font-nms.lua @@ -11,10 +11,13 @@ fonts.names          = fonts.names or { }  local names          = fonts.names  names.version        = 2.005 -- not the same as in context -names.basename       = "otfl-names.lua" -names.subtexmfvardir = "/scripts/luatexfontdb/"  names.new_to_old     = { }  names.old_to_new     = { } +names.path           = { +    basename  = "otfl-names.lua", +    localdir  = kpse.expand_var("$TEXMFVAR")    .. "/scripts/luatexfontdb/", +    systemdir = kpse.expand_var("$TEXMFSYSVAR") .. "/scripts/luatexfontdb/", +}  local splitpath, expandpath, glob, basename = file.split_path, kpse.expand_path, dir.glob, file.basename @@ -35,20 +38,22 @@ local synonyms = {      bolditalic  = {"boldoblique", "boldslant"},  } +function names.load() +    local localpath  = names.path.localdir  .. names.path.basename +    local systempath = names.path.systemdir .. names.path.basename +    local data       = dofile(localpath) or dofile(systempath) +    if data then +        if trace_loading then +            logs.report("load font", "loaded font names database: %s", foundname) +        end +        return data +    end +end +  function names.resolve(specification)      local name, style = specification.name, specification.style or "regular"      if not loaded then -        local basename = names.basename -        if basename and basename ~= "" and names.subtexmfvardir then -            local foundname = kpse.expand_var("$TEXMFVAR") .. names.subtexmfvardir .. basename -            if not file.isreadable(foundname) then -                foundname = kpse.expand_var("$TEXMFSYSVAR") .. names.subtexmfvardir .. basename -            end -            if file.isreadable(foundname) then -                data = dofile(foundname) -                logs.report("load font", "loaded font names database: %s", foundname) -            end -        end +        data   = names.load()          loaded = true      end      if type(data) == "table" and data.version == names.version then | 
