diff options
Diffstat (limited to 'Master/texmf-dist/tex/context/base/mkiv/file-lib.lua')
-rw-r--r-- | Master/texmf-dist/tex/context/base/mkiv/file-lib.lua | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/Master/texmf-dist/tex/context/base/mkiv/file-lib.lua b/Master/texmf-dist/tex/context/base/mkiv/file-lib.lua index 361608ea3cf..62cf938ba4d 100644 --- a/Master/texmf-dist/tex/context/base/mkiv/file-lib.lua +++ b/Master/texmf-dist/tex/context/base/mkiv/file-lib.lua @@ -17,7 +17,6 @@ local trace_libraries = false trackers.register("resolvers.libraries", function local report_library = logs.reporter("files","library") ----- report_files = logs.reporter("files","readfile") -local suffixonly = file.suffix local removesuffix = file.removesuffix local getreadfilename = resolvers.getreadfilename @@ -49,12 +48,7 @@ function resolvers.uselibrary(specification) -- todo: reporter end for i=1,#files do local filename = files[i] - if loaded[filename] then - -- next one - else - if onlyonce then - loaded[filename] = true -- todo: base this on return value - end + if not loaded[filename] then local foundname = nil local barename = removesuffix(filename) -- direct search (we have an explicit suffix) @@ -77,10 +71,18 @@ function resolvers.uselibrary(specification) -- todo: reporter end end end - if foundname then - action(name,foundname) - elseif failure then - failure(name) + if not loaded[foundname] then + if foundname then + action(name,foundname) + if onlyonce then + loaded[foundname] = true -- todo: base this on return value + end + elseif failure then + failure(name) + end + if onlyonce then + loaded[filename] = true -- todo: base this on return value + end end end end |