Skip to content

Commit

Permalink
libstd: Check TMPDIR for android as well and if not set use '/data/lo…
Browse files Browse the repository at this point in the history
…cal/tmp' instead of '/data/tmp'.
  • Loading branch information
luqmana committed May 8, 2014
1 parent c4f0980 commit b55423a
Showing 1 changed file with 9 additions and 7 deletions.
16 changes: 9 additions & 7 deletions src/libstd/os.rs
Original file line number Diff line number Diff line change
Expand Up @@ -529,9 +529,9 @@ pub fn homedir() -> 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
Expand All @@ -554,11 +554,13 @@ pub fn tmpdir() -> 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)]
Expand Down

0 comments on commit b55423a

Please sign in to comment.