DynASM: Compatibility with minilua.

This commit is contained in:
Mike Pall 2012-06-09 14:41:44 +02:00
parent e75561b70e
commit 6c8aaef2bb

View File

@ -352,7 +352,7 @@ end
-- Search for a file in the given path and open it for reading. -- Search for a file in the given path and open it for reading.
local function pathopen(path, name) local function pathopen(path, name)
local dirsep = match(package.path, "\\") and "\\" or "/" local dirsep = package and match(package.path, "\\") and "\\" or "/"
for _,p in ipairs(path) do for _,p in ipairs(path) do
local fullname = p == "" and name or p..dirsep..name local fullname = p == "" and name or p..dirsep..name
local fin = io.open(fullname, "r") local fin = io.open(fullname, "r")
@ -616,6 +616,17 @@ end
------------------------------------------------------------------------------ ------------------------------------------------------------------------------
-- Replacement for customized Lua, which lacks the package library.
local prefix = ""
if not require then
function require(name)
local fp = assert(io.open(prefix..name..".lua"))
local s = fp:read("*a")
assert(fp:close())
return assert(loadstring(s, "@"..name..".lua"))()
end
end
-- Load architecture-specific module. -- Load architecture-specific module.
local function loadarch(arch) local function loadarch(arch)
if not match(arch, "^[%w_]+$") then return "bad arch name" end if not match(arch, "^[%w_]+$") then return "bad arch name" end
@ -1073,8 +1084,8 @@ end
-- Add the directory dynasm.lua resides in to the Lua module search path. -- Add the directory dynasm.lua resides in to the Lua module search path.
local arg = arg local arg = arg
if arg and arg[0] then if arg and arg[0] then
local prefix = match(arg[0], "^(.*[/\\])") prefix = match(arg[0], "^(.*[/\\])")
if prefix then package.path = prefix.."?.lua;"..package.path end if package and prefix then package.path = prefix.."?.lua;"..package.path end
end end
-- Start DynASM. -- Start DynASM.