diff options
| author | Philipp Gesang <phg42.2a@gmail.com> | 2013-07-05 23:56:29 +0200 | 
|---|---|---|
| committer | Philipp Gesang <phg42.2a@gmail.com> | 2013-07-05 23:56:29 +0200 | 
| commit | 63dff173d9a4d201890b0afa9f3168b45cc5f681 (patch) | |
| tree | 5b98e5025f897d3d0919d5af876b195bdc327a08 | |
| parent | f09597aaf6cb7b70eacc2b7399ee743736c0893a (diff) | |
| download | luaotfload-63dff173d9a4d201890b0afa9f3168b45cc5f681.tar.gz | |
prefer getwritablepath() to manual path building
| -rw-r--r-- | luaotfload-database.lua | 36 | 
1 files changed, 20 insertions, 16 deletions
| diff --git a/luaotfload-database.lua b/luaotfload-database.lua index c0aadaf..30ebb47 100644 --- a/luaotfload-database.lua +++ b/luaotfload-database.lua @@ -54,6 +54,7 @@ local utf8gsub                = unicode.utf8.gsub  local utf8lower               = unicode.utf8.lower  --- these come from Lualibs/Context +local getwritablepath         = caches.getwritablepath  local filebasename            = file.basename  local filecollapsepath        = file.collapsepath or file.collapse_path  local filedirname             = file.dirname @@ -99,9 +100,9 @@ names.path           = {      dir              = "",                      --- db and cache directory      basename         = config.luaotfload.names_file                      or "luaotfload-names.lua", -    path             = "",                      --- full path to db file +    index            = "",                      --- full path to db file      lookup_basename  = "luaotfload-lookup-cache.lua", --- cache file name -    lookup_path      = "",                            --- cache full path +    lookups          = "",                            --- cache full path  }  -- We use the cache.* of ConTeXt (see luat-basics-gen), we can @@ -109,13 +110,15 @@ names.path           = {  -- uses TEXMFCACHE or TEXMFVAR as starting points.  local writable_path  if caches then -    writable_path = caches.getwritablepath "names" +    writable_path = getwritablepath ("names", "")      if not writable_path then -        luaotfload.error("Impossible to find a suitable writeable cache...") +        luaotfload.error +            ("Impossible to find a suitable writeable cache...")      end -    names.path.dir          = writable_path -    names.path.path         = filejoin(writable_path, names.path.basename) -    names.path.lookup_path  = filejoin(writable_path, names.path.lookup_basename) +    names.path.dir     = writable_path +    names.path.index   = getwritablepath ("names", names.path.basename) +    names.path.lookups = getwritablepath ("names", +                                          names.path.lookup_basename)  else --- running as script, inject some dummies      caches = { }      logs   = { report = function () end } @@ -330,7 +333,7 @@ local fuzzy_limit = 1 --- display closest only  --- bool? -> dbobj  load_names = function (dry_run)      local starttime = os.gettimeofday() -    local foundname, data = load_lua_file(names.path.path) +    local foundname, data = load_lua_file(names.path.index)      if data then          report("both", 2, "db", @@ -352,7 +355,7 @@ load_names = function (dry_run)          report("both", 0, "db",              [[Font names database not found, generating new one.]])          report("both", 0, "db", -             [[This can take several minutes; please be patient.]]) +            [[This can take several minutes; please be patient.]])          data = update_names(fontnames_init(false), nil, dry_run)          local success = save_names(data)          if not success then @@ -365,7 +368,7 @@ end  --- unit -> dbobj  load_lookups = function ( ) -    local foundname, data = load_lua_file(names.path.lookup_path) +    local foundname, data = load_lua_file(names.path.lookups)      if data then          report("both", 3, "cache",                 "Lookup cache loaded (%s)", foundname) @@ -1930,12 +1933,12 @@ save_lookups = function ( )      local lookups  = names.lookups      local path     = ensure_names_path()      if fileiswritable(path) then -        local luaname, lucname = make_savenames(names.path.lookup_path) +        local luaname, lucname = make_savenames(names.path.lookups)          if luaname then              tabletofile(luaname, lookups, true)              if lucname and type(caches.compile) == "function" then                  os.remove(lucname) -                caches.compile(lookups, luaname, lucname) +                print("\ncompile>", caches.compile(lookups, luaname, lucname))                  report("both", 3, "cache", "Lookup cache saved")                  return true              end @@ -1950,8 +1953,8 @@ end  save_names = function (fontnames)      if not fontnames then fontnames = names.data end      local path = ensure_names_path() -    if fileiswritable(path) then -        local luaname, lucname = make_savenames(names.path.path) +    if fileiswritable (path) then +        local luaname, lucname = make_savenames(names.path.index)          if luaname then              --tabletofile(luaname, fontnames, true, { reduce=true })              tabletofile(luaname, fontnames, true) @@ -1964,6 +1967,8 @@ save_names = function (fontnames)                  return true              end          end +    --else +        --report("both", 0, "db", "Failed to save names database")      end      report("both", 0, "db", "Failed to save names database")      return false @@ -2048,8 +2053,7 @@ end  local getwritablecachepath = function ( )      --- fonts.handlers.otf doesn’t exist outside a Luatex run,      --- so we have to improvise -    local writable = caches.getwritablepath -                        (config.luaotfload.cache_dir) +    local writable = getwritablepath (config.luaotfload.cache_dir)      if writable then          return writable      end | 
