diff options
-rw-r--r-- | luaotfload-database.lua | 35 |
1 files changed, 25 insertions, 10 deletions
diff --git a/luaotfload-database.lua b/luaotfload-database.lua index 4755396..39c6ab5 100644 --- a/luaotfload-database.lua +++ b/luaotfload-database.lua @@ -2006,7 +2006,7 @@ local collect_cache collect_cache = function (path, all, n, luanames, return luanames, lucnames, rest, all end -local getfontcachepath = function ( ) +local getwritablecachepath = function ( ) --- fonts.handlers.otf doesn’t exist outside a Luatex run, --- so we have to improvise local writable = caches.getwritablepath () @@ -2018,9 +2018,23 @@ local getfontcachepath = function ( ) end end +local getreadablecachepaths = function ( ) + local readables = caches.getreadablepaths () + local result = { } + if readables then + for i=1, #readables do + local readable = readables[i] .. "/fonts" + if lfsisdir (readable) then + result[#result+1] = readable + end + end + end + return result +end + --- unit -> unit local purge_cache = function ( ) - local writable_path = getfontcachepath () + local writable_path = getwritablecachepath () local luanames, lucnames, rest = collect_cache(writable_path) if logs.get_loglevel() > 1 then print_cache("writable path", writable_path, luanames, lucnames, rest) @@ -2031,7 +2045,7 @@ end --- unit -> unit local erase_cache = function ( ) - local writable_path = getfontcachepath () + local writable_path = getwritablecachepath () local luanames, lucnames, rest, all = collect_cache(writable_path) if logs.get_loglevel() > 1 then print_cache("writable path", writable_path, luanames, lucnames, rest) @@ -2046,19 +2060,20 @@ end --- unit -> unit local show_cache = function ( ) - local readable_paths = caches.getreadablepaths() - local writable_path = getfontcachepath () + local readable_paths = getreadablecachepaths () + local writable_path = getwritablecachepath () local luanames, lucnames, rest = collect_cache(writable_path) - separator() - print_cache("writable path", writable_path, luanames, lucnames, rest) + separator () + print_cache ("writable path", writable_path, + luanames, lucnames, rest) texiowrite_nl"" for i=1,#readable_paths do local readable_path = readable_paths[i] if readable_path ~= writable_path then - local luanames, lucnames = collect_cache(readable_path) - print_cache("readable path", - readable_path,luanames,lucnames,rest) + local luanames, lucnames = collect_cache (readable_path) + print_cache ("readable path", + readable_path, luanames, lucnames, rest) end end separator() |