From c78e7eb5dd76e1b9e6993df364e21b9e3eef0e0b Mon Sep 17 00:00:00 2001 From: QuickStick <31533893+QuickStick123@users.noreply.github.com> Date: Sat, 17 Dec 2022 17:04:05 +1100 Subject: [PATCH] Check nil on fileText --- src/Modules/Build.lua | 4 ++++ src/Modules/BuildList.lua | 14 ++++++++------ src/Modules/Common.lua | 6 +++++- 3 files changed, 17 insertions(+), 7 deletions(-) diff --git a/src/Modules/Build.lua b/src/Modules/Build.lua index 02bbf8d459..5359598d3f 100644 --- a/src/Modules/Build.lua +++ b/src/Modules/Build.lua @@ -1547,6 +1547,10 @@ function buildMode:LoadDBFile() return true end local xmlText = file:read("*a") + if not xmlText then + self.dbFileName = nil + return true + end file:close() return self:LoadDB(xmlText, self.dbFileName) end diff --git a/src/Modules/BuildList.lua b/src/Modules/BuildList.lua index 8988e9f0f1..03f638266d 100644 --- a/src/Modules/BuildList.lua +++ b/src/Modules/BuildList.lua @@ -165,13 +165,15 @@ function listMode:BuildList() if fileHnd then local fileText = fileHnd:read("*a") fileHnd:close() - fileText = fileText:match("()") if fileText then - local xml = common.xml.ParseXML(fileText.."") - if xml and xml[1] then - build.level = tonumber(xml[1].attrib.level) - build.className = xml[1].attrib.className - build.ascendClassName = xml[1].attrib.ascendClassName + fileText = fileText:match("()") + if fileText then + local xml = common.xml.ParseXML(fileText.."") + if xml and xml[1] then + build.level = tonumber(xml[1].attrib.level) + build.className = xml[1].attrib.className + build.ascendClassName = xml[1].attrib.ascendClassName + end end end end diff --git a/src/Modules/Common.lua b/src/Modules/Common.lua index 119a087656..8bae058881 100644 --- a/src/Modules/Common.lua +++ b/src/Modules/Common.lua @@ -626,7 +626,11 @@ function copyFile(srcName, dstName) if not outFile then return nil, "Couldn't create '"..dstName.."': "..msg end - outFile:write(inFile:read("*a")) + local fileText = inFile:read("*a") + if not fileText then + return nil, "Couldn't read '"..srcName.."': "..msg + end + outFile:write(fileText) inFile:close() outFile:close() return true