Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
GGELUA
GGELUA2
提交
ca8a8414
GGELUA2
项目概览
GGELUA
/
GGELUA2
通知
169
Star
23
Fork
2
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
代码片段
项目成员
Pages
GGELUA2
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
ca8a8414
编写于
4月 07, 2022
作者:
baidwwy
🏋
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
gge.loadfile
gge.dofile
上级
c02ed944
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
123 addition
and
89 deletion
+123
-89
ggelua.lua
ggelua.lua
+123
-89
未找到文件。
ggelua.lua
浏览文件 @
ca8a8414
-- @Author : GGELUA
-- @Date : 2022-03-07 18:52:00
-- @Last Modified by : baidwwy
-- @Last Modified time : 2022-04-0
5 21:04:30
-- @Last Modified time : 2022-04-0
6 06:27:46
require
(
'ggelua'
)
--preload dll
io.stdout
:
setvbuf
(
'no'
,
0
)
local
entry
=
...
local
function
分割路径
(
path
)
local
t
,
n
=
{},
1
for
match
in
path
:
gmatch
(
'([^;]+)'
)
do
t
[
n
]
=
match
n
=
n
+
1
local
lpath
,
cpath
do
local
function
split
(
path
)
local
list
,
n
=
{},
1
for
match
in
path
:
gmatch
(
'([^;]+)'
)
do
list
[
n
]
=
match
n
=
n
+
1
end
return
list
end
return
t
package.path
=
nil
package.cpath
=
nil
setmetatable
(
package
,
{
__newindex
=
function
(
t
,
k
,
v
)
if
v
and
k
==
'path'
then
lpath
=
split
(
v
:
lower
():
gsub
(
'\\'
,
'/'
))
elseif
k
==
'cpath'
then
cpath
=
v
else
rawset
(
t
,
k
,
v
)
end
end
,
__index
=
function
(
t
,
k
)
if
k
==
'path'
then
return
table.concat
(
lpath
,
';'
)
elseif
k
==
'cpath'
then
return
cpath
end
end
}
)
end
local
lpath
,
lpath_
,
cpath
if
gge
.
platform
==
'Windows'
then
--lua脚本搜索
lpath
=
'!/ggelua/?.lua;!/ggelua/?/?.lua;ggelua/?.lua;ggelua/?/?.lua;?.lua;lua/?.lua;lua/?/?.lua'
lpath
=
lpath
:
gsub
(
'!'
,
gge.getrunpath
())
lpath_
=
分割路径
(
lpath
)
--lua模块搜索
cpath
=
'?.dll;lib/?.dll;!/?.dll;!/lib/?.dll'
cpath
=
cpath
:
gsub
(
'!'
,
gge.getrunpath
())
local
path
=
'!/ggelua/?.lua;!/ggelua/?/?.lua;ggelua/?.lua;ggelua/?/?.lua;?.lua;lua/?.lua;lua/?/?.lua'
package.path
=
path
:
gsub
(
'!'
,
gge.getrunpath
())
local
cpath
=
'?.dll;lib/?.dll;!/?.dll;!/lib/?.dll'
package.cpath
=
cpath
:
gsub
(
'!'
,
gge.getrunpath
())
elseif
gge
.
platform
==
'Android'
then
lpath
=
'ggelua/?.lua;ggelua/?/?.lua;?.lua;lua/?.lua;lua/?/?.lua'
lpath_
=
分割路径
(
lpath
)
cpath
=
gge
.
arg
[
1
]
..
'/lib?.so'
package.path
=
'ggelua/?.lua;ggelua/?/?.lua;?.lua;lua/?.lua;lua/?/?.lua'
package.cpath
=
gge
.
arg
[
1
]
..
'/lib?.so'
end
package.path
=
nil
package.cpath
=
nil
setmetatable
(
package
,
{
__newindex
=
function
(
t
,
k
,
v
)
if
v
and
k
==
'path'
then
lpath
=
v
:
lower
():
gsub
(
'\\'
,
'/'
)
lpath_
=
分割路径
(
lpath
)
elseif
k
==
'cpath'
then
cpath
=
v
else
rawset
(
t
,
k
,
v
)
end
end
,
__index
=
function
(
t
,
k
)
if
k
==
'path'
then
return
lpath
elseif
k
==
'cpath'
then
return
cpath
end
end
}
)
-- if gge.platform=='Android' then
-- error("找不到脚本")
-- return
...
...
@@ -160,7 +156,7 @@ else
end
local
function
搜索路径
(
path
)
for
_
,
v
in
ipairs
(
lpath
_
)
do
for
_
,
v
in
ipairs
(
lpath
)
do
local
file
=
v
:
gsub
(
'?'
,
path
)
if
是否存在
(
file
)
then
return
file
...
...
@@ -168,64 +164,102 @@ local function 搜索路径(path)
end
end
local
loaded
=
package.loaded
table.insert
(
package.searchers
,
2
,
--1是preload
function
(
path
)
local
npath
=
处理路径
(
path
)
if
loaded
[
npath
]
~=
nil
then
return
function
()
return
loaded
[
npath
]
do
local
loaded
=
package.loaded
table.insert
(
package.searchers
,
2
,
--1是preload
function
(
path
)
local
npath
=
处理路径
(
path
)
if
loaded
[
npath
]
~=
nil
then
return
function
()
return
loaded
[
npath
]
end
end
end
local
fpath
=
搜索路径
(
npath
)
if
fpath
then
return
function
()
local
data
=
读取文件
(
fpath
)
local
r
,
err
=
load
(
data
,
fpath
)
if
err
then
return
error
(
err
,
2
)
local
fpath
=
搜索路径
(
npath
)
if
fpath
then
return
function
()
local
data
=
读取文件
(
fpath
)
local
r
,
err
=
load
(
data
,
fpath
)
if
err
then
return
error
(
err
,
2
)
end
local
r
=
r
()
loaded
[
npath
]
=
r
==
nil
and
true
or
r
return
loaded
[
npath
]
end
local
r
=
r
()
loaded
[
npath
]
=
r
==
nil
and
true
or
r
return
loaded
[
npath
]
end
end
end
)
)
package.loaded
=
setmetatable
(
{},
{
__index
=
function
(
t
,
k
)
if
loaded
[
k
]
then
package.loaded
=
setmetatable
(
{},
{
__index
=
function
(
t
,
k
)
if
loaded
[
k
]
then
return
loaded
[
k
]
end
k
=
处理路径
(
k
)
return
loaded
[
k
]
end
,
__newindex
=
function
(
t
,
k
,
v
)
loaded
[
k
]
=
v
k
=
处理路径
(
k
)
loaded
[
k
]
=
v
end
,
__pairs
=
function
()
return
next
,
loaded
end
k
=
处理路径
(
k
)
return
loaded
[
k
]
end
,
__newindex
=
function
(
t
,
k
,
v
)
loaded
[
k
]
=
v
k
=
处理路径
(
k
)
loaded
[
k
]
=
v
end
,
__pairs
=
function
()
return
next
,
loaded
end
}
)
}
)
end
function
gge
.
require
(
path
,
env
,
...
)
path
=
处理路径
(
path
)
path
=
搜索路径
(
path
)
local
data
=
读取文件
(
path
)
if
data
then
return
assert
(
load
(
data
,
path
,
'bt'
,
env
))(
...
)
if
type
(
path
)
==
'string'
then
local
data
=
读取文件
(
path
)
if
data
then
return
assert
(
load
(
data
,
path
,
'bt'
,
env
))(
...
)
end
end
end
if
not
gge
.
isdebug
then
local
olf
=
loadfile
function
loadfile
(
file
)
local
r
=
olf
(
file
)
if
r
then
return
r
end
return
gge
.
loadfile
(
file
)
end
local
odf
=
dofile
function
dofile
(
file
)
local
r
=
odf
(
file
)
if
r
then
return
r
end
return
gge
.
dofile
(
file
)
end
end
function
gge
.
loadfile
(
file
,
env
)
if
type
(
file
)
==
'string'
then
local
data
=
读取文件
(
file
:
lower
():
gsub
(
'\\'
,
'/'
))
if
data
then
return
assert
(
load
(
data
,
file
,
'bt'
,
env
))
end
end
end
function
gge
.
dofile
(
file
,
env
,
...
)
if
type
(
file
)
==
'string'
then
return
gge
.
loadfile
(
file
,
env
)(
...
)
end
end
require
(
'GGE'
)
ggexpcall
(
require
,
entry
)
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录