diff --git a/rdmd/rdmd.d b/rdmd/rdmd.d index 06f46d7..af22c35 100755 --- a/rdmd/rdmd.d +++ b/rdmd/rdmd.d @@ -386,7 +386,13 @@ bool inALibrary(string source, string object) private @property string myOwnTmpDir() { - auto tmpRoot = userTempDir ? userTempDir : tempDir(); + import std.file : empty, exists; + import std.process : environment; + + string shellTemp = environment.get("TMPDIR"); + string defaultTemp = !shellTemp.empty && shellTemp.exists ? shellTemp + : tempDir(); + auto tmpRoot = userTempDir ? userTempDir : defaultTemp; version (Posix) { import core.sys.posix.unistd;