about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMatthias Krüger <matthias.krueger@famsik.de>2022-12-11 23:36:44 +0100
committerGitHub <noreply@github.com>2022-12-11 23:36:44 +0100
commit668976b80ad6ca3bfbc0cddf9e676b289c07fc49 (patch)
tree16d3a7c1a4341f3a2f9b8f34b67f650c779ea305
parent657eefe2dcf18f76ac67a39945810128e101178c (diff)
parent8f0025e5a3346b1cfcc64abca7bf768f25d1ff9e (diff)
downloadrust-668976b80ad6ca3bfbc0cddf9e676b289c07fc49.tar.gz
rust-668976b80ad6ca3bfbc0cddf9e676b289c07fc49.zip
Rollup merge of #101648 - Timmmm:home_dir_docs, r=joshtriplett
Better documentation for env::home_dir()'s broken behaviour

This improves the documentation to say *why* it was deprecated. The reason was because it reads `HOME` on Windows which is meaningless there. Note that the PR that deprecated it stated that returning an empty string if `HOME` is set to an empty string was a problem, however I can find no evidence that this is the case. `cd` handles it fine whereas if `HOME` is unset it gives an explicit `HOME not set` error.

* Original deprecation reason: https://internals.rust-lang.org/t/deprecate-or-break-fix-std-env-home-dir/7315
* Original deprecation PR: https://github.com/rust-lang/rust/pull/51656

See #71684
-rw-r--r--library/std/src/env.rs9
1 files changed, 8 insertions, 1 deletions
diff --git a/library/std/src/env.rs b/library/std/src/env.rs
index 6eb7cbea626..183f9ab3b08 100644
--- a/library/std/src/env.rs
+++ b/library/std/src/env.rs
@@ -570,6 +570,13 @@ impl Error for JoinPathsError {
 ///
 /// [msdn]: https://docs.microsoft.com/en-us/windows/win32/api/userenv/nf-userenv-getuserprofiledirectorya
 ///
+/// # Deprecation
+///
+/// This function is deprecated because the behaviour on Windows is not correct.
+/// The 'HOME' environment variable is not standard on Windows, and may not produce
+/// desired results; for instance, under Cygwin or Mingw it will return `/home/you`
+/// when it should return `C:\Users\you`.
+///
 /// # Examples
 ///
 /// ```
@@ -582,7 +589,7 @@ impl Error for JoinPathsError {
 /// ```
 #[deprecated(
     since = "1.29.0",
-    note = "This function's behavior is unexpected and probably not what you want. \
+    note = "This function's behavior may be unexpected on Windows. \
             Consider using a crate from crates.io instead."
 )]
 #[must_use]