Use TMPDIR env var if available to get the temp dir name (#11443) [bugfix]

Additionally, use normalizePathEnd to suffix the dir name with "/" or
"\" as appropriate for the current OS.

Fixes https://github.com/nim-lang/Nim/issues/11439.
This commit is contained in:
Kaushal Modi 2019-06-10 13:59:51 -04:00 • committed by Andreas Rumpf
commit 2334680b3d
2 changed files with 20 additions and 5 deletions

View file

@ -798,13 +798,16 @@ proc getTempDir*(): string {.rtl, extern: "nos$1",
## * `expandTilde proc <#expandTilde,string>`_
## * `getCurrentDir proc <#getCurrentDir>`_
## * `setCurrentDir proc <#setCurrentDir,string>`_
const tempDirDefault = "/tmp/"
const tempDirDefault = "/tmp"
result = tempDirDefault
when defined(tempDir):
const tempDir {.strdefine.}: string = tempDirDefault
return tempDir
elif defined(windows): return string(getEnv("TEMP")) & "\\"
elif defined(android): return getHomeDir()
else: return tempDirDefault
result = tempDir
elif defined(windows): result = string(getEnv("TEMP"))
elif defined(android): result = getHomeDir()
else:
if existsEnv("TMPDIR"): result = string(getEnv("TMPDIR"))
normalizePathEnd(result, trailingSep=true)
proc expandTilde*(path: string): string {.
tags: [ReadEnvEffect, ReadIOEffect].} =