|
Warning: this is an htmlized version!
The original is here, and the conversion rules are here. |
-- lualoader.lua: make LuaTeX's "require" behave more like Lua's
-- This file:
-- http://angg.twu.net/dednat5/lualoader.lua
-- http://angg.twu.net/dednat5/lualoader.lua.html
-- (find-angg "dednat5/lualoader.lua")
--
-- Loaded by:
-- (find-dn5 "dednat6.lua" "luatex-require")
-- (find-dn5 "dednat6.lua" "luatex-require" "lualoader")
-- Code taken from:
-- http://tug.org/pipermail/luatex/2015-February/005073.html
-- http://lua-users.org/wiki/LuaModulesLoader
-- (find-es "luatex" "require")
-- (find-LATEX "lualoader.lua")
-- (find-LATEXgrep "grep -nH -e lualoader *.tex")
--
-- Compatibility:
package.loaders = package.loaders or package.searchers
loadstring = loadstring or load
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)
-- Local Variables:
-- coding: raw-text-unix
-- End: