]> git.lizzy.rs Git - rust.git/commitdiff
libstd: Check TMPDIR for android as well and if not set use '/data/local/tmp' instead...
authorLuqman Aden <laden@csclub.uwaterloo.ca>
Thu, 8 May 2014 23:53:04 +0000 (19:53 -0400)
committerLuqman Aden <laden@csclub.uwaterloo.ca>
Thu, 8 May 2014 23:53:04 +0000 (19:53 -0400)
src/libstd/os.rs

index 809757aaf4d0281a6445038a9f84d6d6cc64b245..43d642c81ad151cd28fdafbd885eacecb50dade2 100644 (file)
@@ -529,9 +529,9 @@ fn secondary() -> Option<Path> {
  * Returns the path to a temporary directory.
  *
  * On Unix, returns the value of the 'TMPDIR' environment variable if it is
- * set and non-empty and '/tmp' otherwise.
- * On Android, there is no global temporary folder (it is usually allocated
- * per-app), hence returns '/data/tmp' which is commonly used.
+ * set, otherwise for non-Android it returns '/tmp'. If Android, since there
+ * is no global temporary folder (it is usually allocated per-app), we return
+ * '/data/local/tmp'.
  *
  * On Windows, returns the value of, in order, the 'TMP', 'TEMP',
  * 'USERPROFILE' environment variable  if any are set and not the empty
@@ -554,11 +554,13 @@ fn getenv_nonempty(v: &str) -> Option<Path> {
 
     #[cfg(unix)]
     fn lookup() -> Path {
-        if cfg!(target_os = "android") {
-            Path::new("/data/tmp")
+        let default = if cfg!(target_os = "android") {
+            Path::new("/data/local/tmp")
         } else {
-            getenv_nonempty("TMPDIR").unwrap_or(Path::new("/tmp"))
-        }
+            Path::new("/tmp")
+        };
+
+        getenv_nonempty("TMPDIR").unwrap_or(default)
     }
 
     #[cfg(windows)]