summaryrefslogtreecommitdiff
path: root/tex/context/base/mkiv/data-tmp.lua
diff options
context:
space:
mode:
Diffstat (limited to 'tex/context/base/mkiv/data-tmp.lua')
-rw-r--r--tex/context/base/mkiv/data-tmp.lua15
1 files changed, 10 insertions, 5 deletions
diff --git a/tex/context/base/mkiv/data-tmp.lua b/tex/context/base/mkiv/data-tmp.lua
index d25a6b2f9..e65f7ce61 100644
--- a/tex/context/base/mkiv/data-tmp.lua
+++ b/tex/context/base/mkiv/data-tmp.lua
@@ -29,6 +29,7 @@ local mkdirs, isdir, isfile = dir.mkdirs, lfs.isdir, lfs.isfile
local addsuffix, is_writable, is_readable = file.addsuffix, file.is_writable, file.is_readable
local formatters = string.formatters
local next, type = next, type
+----- pcall, loadfile = pcall, loadfile
local trace_locating = false trackers.register("resolvers.locating", function(v) trace_locating = v end)
local trace_cache = false trackers.register("resolvers.cache", function(v) trace_cache = v end)
@@ -325,22 +326,23 @@ function caches.loaddata(readables,name,writable)
for i=1,#readables do
local path = readables[i]
local loader = false
+ local state = false
local tmaname, tmcname = caches.setluanames(path,name)
if isfile(tmcname) then
- loader = loadfile(tmcname)
+ state, loader = pcall(loadfile,tmcname)
end
if not loader and isfile(tmaname) then
-- can be different paths when we read a file database from disk
local tmacrap, tmcname = caches.setluanames(writable,name)
if isfile(tmcname) then
- loader = loadfile(tmcname)
+ state, loader = pcall(loadfile,tmcname)
end
utilities.lua.compile(tmaname,tmcname)
if isfile(tmcname) then
- loader = loadfile(tmcname)
+ state, loader = pcall(loadfile,tmcname)
end
if not loader then
- loader = loadfile(tmaname)
+ state, loader = pcall(loadfile,tmaname)
end
end
if loader then
@@ -390,7 +392,10 @@ function caches.loadcontent(cachename,dataname,filename)
local full, path = caches.getfirstreadablefile(addsuffix(name,luasuffixes.lua),"trees")
filename = file.join(path,name)
end
- local blob = loadfile(addsuffix(filename,luasuffixes.luc)) or loadfile(addsuffix(filename,luasuffixes.lua))
+ local state, blob = pcall(loadfile,addsuffix(filename,luasuffixes.luc))
+ if not blob then
+ state, blob = pcall(loadfile,addsuffix(filename,luasuffixes.lua))
+ end
if blob then
local data = blob()
if data and data.content then