diff --git a/src/pre_generated-zmq.nobj.c b/src/pre_generated-zmq.nobj.c index 970605c..6cf499b 100644 --- a/src/pre_generated-zmq.nobj.c +++ b/src/pre_generated-zmq.nobj.c @@ -936,21 +936,37 @@ static const char zmq_ffi_lua_code[] = "local ffi=require\"ffi\"\n" "local p_config = package.config\n" "local p_cpath = package.cpath\n" "\n" -"local function ffi_load_cmodule(name, global)\n" -" local dir_sep = p_config:sub(1,1)\n" -" local path_sep = p_config:sub(3,3)\n" -" local path_mark = p_config:sub(5,5)\n" -" local path_match = \"([^\" .. path_sep .. \"]*)\" .. path_sep\n" -" -- convert dotted name to directory path.\n" -" name = name:gsub('%.', dir_sep)\n" -" -- try each path in search path.\n" -" for path in p_cpath:gmatch(path_match) do\n" -" local fname = path:gsub(path_mark, name)\n" -" local C, err = ffi_safe_load(fname, global)\n" -" -- return opened library\n" -" if C then return C end\n" +"local ffi_load_cmodule\n" +"\n" +"-- try to detect luvit.\n" +"if p_config == nil and p_cpath == nil then\n" +" ffi_load_cmodule = function(name, global)\n" +" for path,module in pairs(package.loaded) do\n" +" if type(module) == 'string' and path:match(\"zmq\") then\n" +" local C, err = ffi_safe_load(path .. '.luvit', global)\n" +" -- return opened library\n" +" if C then return C end\n" +" end\n" +" end\n" +" error(\"Failed to find: \" .. name)\n" +" end\n" +"else\n" +" ffi_load_cmodule = function(name, global)\n" +" local dir_sep = p_config:sub(1,1)\n" +" local path_sep = p_config:sub(3,3)\n" +" local path_mark = p_config:sub(5,5)\n" +" local path_match = \"([^\" .. path_sep .. \"]*)\" .. path_sep\n" +" -- convert dotted name to directory path.\n" +" name = name:gsub('%.', dir_sep)\n" +" -- try each path in search path.\n" +" for path in p_cpath:gmatch(path_match) do\n" +" local fname = path:gsub(path_mark, name)\n" +" local C, err = ffi_safe_load(fname, global)\n" +" -- return opened library\n" +" if C then return C end\n" +" end\n" +" error(\"Failed to find: \" .. name)\n" " end\n" -" error(\"Failed to find: \" .. name)\n" "end\n" "\n" "local _M, _priv, udata_new = ...\n"