summary refs log tree commit diff stats
path: root/lib/pure/ospaths.nim
diff options
context:
space:
mode:
authorAndreas Rumpf <rumpf_a@web.de>2017-08-30 11:08:49 +0200
committerAndreas Rumpf <rumpf_a@web.de>2017-08-30 11:08:49 +0200
commit80fab1d861f7801b9ccaac6ef4d7ff38defa207b (patch)
tree5e0c193e683a0b95fd59c8c18d75b051a677e1be /lib/pure/ospaths.nim
parenteb8371012c359e387a7c73b97ef333c783086641 (diff)
downloadNim-80fab1d861f7801b9ccaac6ef4d7ff38defa207b.tar.gz
make ospaths compile for Android again, simplify its implementation, added a disclaimer
Diffstat (limited to 'lib/pure/ospaths.nim')
-rw-r--r--lib/pure/ospaths.nim22
1 files changed, 7 insertions, 15 deletions
diff --git a/lib/pure/ospaths.nim b/lib/pure/ospaths.nim
index 3cd90056a..4e76e4e18 100644
--- a/lib/pure/ospaths.nim
+++ b/lib/pure/ospaths.nim
@@ -528,28 +528,20 @@ when declared(getEnv) or defined(nimscript):
     elif getEnv("XDG_CONFIG_DIR"): return string(getEnv("XDG_CONFIG_DIR")) & "/"
     else: return string(getEnv("HOME")) & "/.config/"
 
-  when defined(android):
-    when declared(os):
-      {.pragma: getTempDirEffects, tags: [ReadEnvEffect, ReadIOEffect, WriteDirEffect].}
-    else:
-      {.pragma: getTempDirEffects, tags: [ReadEnvEffect, ReadIOEffect].}
-  elif defined(windows):
-    {.pragma: getTempDirEffects, tags: [ReadEnvEffect, ReadIOEffect].}
-  else:
-    {.pragma: getTempDirEffects, tags: [ReadIOEffect].}
-
   proc getTempDir*(): string {.rtl, extern: "nos$1",
-    getTempDirEffects.} =
+    tags: [ReadEnvEffect, ReadIOEffect].} =
     ## Returns the temporary directory of the current user for applications to
     ## save temporary files in.
+    ##
+    ## **Please do not use this**: On Android, it currently
+    ## returns ``getHomeDir()``, and on other Unix based systems it can cause
+    ## security problems too. That said, you can override this implementation
+    ## by adding ``-d:tempDir=mytempname`` to your compiler invokation.
     when defined(tempDir):
       const tempDir {.strdefine.}: string = nil
       return tempDir
     elif defined(windows): return string(getEnv("TEMP")) & "\\"
-    elif defined(android):
-      let tempDir = getHomeDir() / "nimtempfs"
-      createDir(tempDir)
-      return tempDir
+    elif defined(android): return getHomeDir()
     else: return "/tmp/"
 
   proc expandTilde*(path: string): string {.