mirror of
https://github.com/CCLeonOS/LeonOS.git
synced 2026-03-03 15:17:01 +00:00
fix: 修复事件拉取函数的安全性问题并改进错误处理
修复多个文件中事件拉取函数的安全性问题,添加更健壮的fallback机制 在imageview.lua中改进错误信息显示,确保image变量转换为字符串 在pkg.lua中调整JSON序列化参数以生成更紧凑的输出
This commit is contained in:
@@ -592,13 +592,18 @@ end
|
||||
|
||||
function GUIManager:handleEvents()
|
||||
while self.running do
|
||||
-- Safely get the pullEvent function with fallback to rc.pullEvent
|
||||
-- Safely get the pullEvent function with multiple fallbacks
|
||||
local pullEventFunc = os.pullEvent
|
||||
if type(pullEventFunc) ~= "function" then
|
||||
-- Try using rc.pullEvent as fallback
|
||||
pullEventFunc = rc and rc.pullEvent
|
||||
-- Try using rc.pullEvent as fallback if rc is available
|
||||
if rc and type(rc.pullEvent) == "function" then
|
||||
pullEventFunc = rc.pullEvent
|
||||
else
|
||||
-- In CC Tweaked, os.pullEventRaw is always available
|
||||
pullEventFunc = os.pullEventRaw
|
||||
if type(pullEventFunc) ~= "function" then
|
||||
error("Neither os.pullEvent nor rc.pullEvent is available")
|
||||
error("No valid event pulling function found. Ensure you're running in a CC Tweaked environment.")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -60,7 +60,7 @@ local function main(args)
|
||||
end)
|
||||
|
||||
if not success then
|
||||
print("Error loading image: " .. image)
|
||||
print("Error loading image: " .. tostring(image))
|
||||
print("Make sure the URL points to a valid image file compatible with CC Tweaked.")
|
||||
return
|
||||
end
|
||||
@@ -79,9 +79,15 @@ local function main(args)
|
||||
|
||||
print("\nImage displayed. Press ESC to exit.")
|
||||
|
||||
-- 监听ESC键
|
||||
-- 安全地监听ESC键
|
||||
while true do
|
||||
local _, key = os.pullEvent("key")
|
||||
-- 使用安全的事件拉取函数
|
||||
local pullEventFunc = os.pullEvent or os.pullEventRaw
|
||||
if not pullEventFunc then
|
||||
error("No valid event pulling function found")
|
||||
end
|
||||
|
||||
local event, key = table.unpack({pullEventFunc("key")})
|
||||
if key == 27 then -- ESC键
|
||||
term.clear()
|
||||
term.setCursorPos(1, 1)
|
||||
|
||||
@@ -60,7 +60,7 @@ local function create_package(pkg_name)
|
||||
}
|
||||
local json_file = io.open(fs.combine(version_dir, "package.json"), "w")
|
||||
if json_file then
|
||||
json_file:write(textutils.serializeJSON(package_json, true))
|
||||
json_file:write(textutils.serializeJSON(package_json, false))
|
||||
json_file:close()
|
||||
print("Created package.json")
|
||||
else
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
-- LeonOS installer
|
||||
local INSTALLER_VERSION = "0.3.8 Beta 4 Alpha 1"
|
||||
local INSTALLER_VERSION = "0.3.8 Beta 4 Alpha 2"
|
||||
local DEFAULT_ROM_DIR = "/leonos"
|
||||
|
||||
print("Start loading LeonOS installer ("..INSTALLER_VERSION..")...")
|
||||
|
||||
Reference in New Issue
Block a user