diff options
| author | Khaled Hosny <khaledhosny@eglug.org> | 2010-05-16 19:13:25 +0300 | 
|---|---|---|
| committer | Khaled Hosny <khaledhosny@eglug.org> | 2010-05-16 19:13:25 +0300 | 
| commit | 10c292a735ebafc7870dd342fd0d7739f6bf5af2 (patch) | |
| tree | 0782fba86f6bcd1b1bb0c79772b128d1c5defe88 | |
| parent | 36507882318ca56f0b357846ae62ca21e7cddc0f (diff) | |
| download | luaotfload-10c292a735ebafc7870dd342fd0d7739f6bf5af2.tar.gz | |
Auto generate font names database
If no font names database is found, generate a new one. Broken unless
luatex is run with "--shell-escape".
| -rw-r--r-- | otfl-font-nms.lua | 32 | 
1 files changed, 16 insertions, 16 deletions
diff --git a/otfl-font-nms.lua b/otfl-font-nms.lua index d708f5b..935500c 100644 --- a/otfl-font-nms.lua +++ b/otfl-font-nms.lua @@ -37,6 +37,14 @@ local function sanitize(str)      end  end +local function fontnames_init() +    return { +        mappings  = { }, +        status    = { }, +        version   = names.version, +    } +end +  function names.load()      local localpath  = names.path.localdir  .. names.path.basename      local systempath = names.path.systemdir .. names.path.basename @@ -55,8 +63,15 @@ function names.load()                  "loaded font names database: %s",                  foundname)          end -        return data +    else +        logs.report("load font", +            "no font names database found, generating new one") +        local fontnames = fontnames_init() +        local savepath  = names.path.localdir  .. names.path.basename +        data = names.update(fontnames, false) +        io.savedata(savepath, table.serialize(data, true))      end +    return data  end  local loaded    = false @@ -81,10 +96,6 @@ local synonyms  = {      },  } --- a small hack to get the log message "no font names database loaded" only --- once in the log -local log_message_shown = false -  function names.resolve(specification)      local tfm   = resolvers.find_file(specification.name, "ofm")      local name  = sanitize(specification.name) @@ -197,9 +208,6 @@ function names.resolve(specification)              -- no font found so far, fallback to filename              return specification.name, false          end -    elseif not log_message_shown then -        logs.report("load font", "no font names database loaded") -        log_message_shown = true      end  end @@ -517,14 +525,6 @@ local function scan_os_fonts(fontnames, newfontnames)      end  end -local function fontnames_init() -    return { -        mappings  = { }, -        status    = { }, -        version   = names.version, -    } -end -  local function update(fontnames, force)      --[[      The main function, scans everything  | 
