|
Warning: this is an htmlized version!
The original is here, and the conversion rules are here. |
-- This file:
-- http://angg.twu.net/LATEX/lualoader.lua.html
-- http://angg.twu.net/LATEX/lualoader.lua
-- (find-angg "LATEX/lualoader.lua")
-- See: (find-es "luatex" "require")
-- http://tug.org/pipermail/luatex/2015-February/005073.html
-- Usage:
-- \directlua{dofile "lualoader.lua"}
package.loaders = package.loaders or package.searchers
loadstring = loadstring or load
-- From http://lua-users.org/wiki/LuaModulesLoader
local function lualoader(modulename)
local errmsg = ""
-- Find source
local modulepath = string.gsub(modulename, "%.", "/")
for path in string.gmatch(package.path, "([^;]+)") do
local filename = string.gsub(path, "%?", modulepath)
local file = io.open(filename, "rb")
if file then
-- Compile and return the module
return assert(loadstring(assert(file:read("*a")), filename))
end
errmsg = errmsg.."\n\tno file '"..filename.."' (checked with custom loader)"
end
return errmsg
end
-- See http://www.lua.org/manual/5.1/manual.html#pdf-package.loaders
table.insert(package.loaders, 2, lualoader)
-- See also: http://lua-users.org/wiki/BinaryModulesLoader