Use consistent temp folder path (#10892)
This commit is contained in:
parent
5677748551
commit
c0bab6cf40
|
@ -146,35 +146,15 @@ end
|
||||||
|
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
os.tempfolder = function()
|
os.tempfolder = function()
|
||||||
if core.settings:get("TMPFolder") then
|
local temp = core.get_temp_path()
|
||||||
return core.settings:get("TMPFolder") .. DIR_DELIM .. "MT_" .. math.random(0,10000)
|
return temp .. DIR_DELIM .. "MT_" .. math.random(0, 10000)
|
||||||
end
|
end
|
||||||
|
|
||||||
local filetocheck = os.tmpname()
|
--------------------------------------------------------------------------------
|
||||||
os.remove(filetocheck)
|
os.tmpname = function()
|
||||||
|
local path = os.tempfolder()
|
||||||
-- luacheck: ignore
|
io.open(path, "w"):close()
|
||||||
-- https://blogs.msdn.microsoft.com/vcblog/2014/06/18/c-runtime-crt-features-fixes-and-breaking-changes-in-visual-studio-14-ctp1/
|
return path
|
||||||
-- The C runtime (CRT) function called by os.tmpname is tmpnam.
|
|
||||||
-- Microsofts tmpnam implementation in older CRT / MSVC releases is defective.
|
|
||||||
-- tmpnam return values starting with a backslash characterize this behavior.
|
|
||||||
-- https://sourceforge.net/p/mingw-w64/bugs/555/
|
|
||||||
-- MinGW tmpnam implementation is forwarded to the CRT directly.
|
|
||||||
-- https://sourceforge.net/p/mingw-w64/discussion/723797/thread/55520785/
|
|
||||||
-- MinGW links to an older CRT release (msvcrt.dll).
|
|
||||||
-- Due to legal concerns MinGW will never use a newer CRT.
|
|
||||||
--
|
|
||||||
-- Make use of TEMP to compose the temporary filename if an old
|
|
||||||
-- style tmpnam return value is detected.
|
|
||||||
if filetocheck:sub(1, 1) == "\\" then
|
|
||||||
local tempfolder = os.getenv("TEMP")
|
|
||||||
return tempfolder .. filetocheck
|
|
||||||
end
|
|
||||||
|
|
||||||
local randname = "MTTempModFolder_" .. math.random(0,10000)
|
|
||||||
local backstring = filetocheck:reverse()
|
|
||||||
return filetocheck:sub(0, filetocheck:len() - backstring:find(DIR_DELIM) + 1) ..
|
|
||||||
randname
|
|
||||||
end
|
end
|
||||||
|
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
|
|
Loading…
Reference in New Issue